iOS 4.2 - 通过电话后返回应用程序

Sko*_*ota 33 iphone ios

我可以使用以下内容在我的应用内成功发起电话:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
Run Code Online (Sandbox Code Playgroud)

但是,一旦电话通话终止,是否可以自动返回应用程序?这似乎在iPhone OS 3.0下是不可能的,但我希望现在可以在iOS 4.2下进行多任务处理(我无法找到有关iOS 4.2特定问题的任何信息).

在此先感谢您的帮助!

fri*_*rin 121

我知道这个问题已经很老了,但是目前你可以使用telprompt://来做到这一点(至少在iOS 5上),如:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://123456789"]];
Run Code Online (Sandbox Code Playgroud)

iPhone将显示警报视图确认,当通话结束时,您的应用会再次显示,而不是iPhone的通话应用.

  • 我是第二个; 请使用这个答案! - 是否值得编辑我的答案来显示这些信息(当然,归功于Frin)? (3认同)

Luk*_*uke 7

据我所知,因为控制被传递到phone.app进行通话,一旦通话结束,就iOS而言,phone.app是当前应用程序,因此保持在前台.

目前似乎没有什么可以做的.可能值得提出功能请求以允许类似的"模态电话" MFMessageComposer允许您在自己的应用程序中发送电子邮件/短信.

编辑

您可以按照以下答案中的Frin提供的建议,因为其中包含更多最新信息.


小智 6

我认为问题在于您仍在进行sharedApplication调用,而根据其他线程,您无需将Web视图添加为层次结构的一部分.

我拿了你的代码,修改如下,它工作得很好:

NSString *phoneStr = [NSString stringWithFormat:@"tel:%@", phoneNumber];
NSURL *phoneURL = [[NSURL alloc] initWithString:phoneStr];

// The WebView needs to be retained otherwise it won't work.
if (!mCallWebview)
    mCallWebview = [[UIWebView alloc] init];


[mCallWebview loadRequest:[NSURLRequest requestWithURL:phoneURL]]; 
Run Code Online (Sandbox Code Playgroud)

在通话后,您自己的应用程序将像以前一样运