如何拨打电话并在之后返回原始应用程序

时间:2012-03-23 17:00:32

标签: ios

如果我使用UIWebView显示电话号码并将数据检测器类型设置为UIDataDetectorTypePhoneNumber,那么当我点击该号码时,可以拨打电话。

电话结束后,我将返回我的应用

但是,如果我尝试使用

以编程方式调用手机应用程序
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:123456789"]];

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];

然后在通话结束后无法返回我的应用程序。

是否有可能以编程方式启动手机应用程序,然后在通话结束后返回我的应用程序,就像用户点击UIWebView中的数字一样?

6 个答案:

答案 0 :(得分:4)

而不是:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];

使用:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://123456789"]];

telprompt://tel://

这会弹出一个警报视图,用户必须点击“呼叫”,但这会在呼叫完成后返回到应用程序。

答案 1 :(得分:2)

使用例如

NSString * telNummer;
NSString *osVersion = [[UIDevice currentDevice] systemVersion];
if ([osVersion floatValue] >= 5.0) { 
    telNummer = [NSString stringWithFormat: @"telprompt://%@", person.telephoneNumber];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telNummer]];
} else {
    telNummer = [NSString stringWithFormat: @"tel://%@", person.telephoneNumber]; 
    UIWebView *webview = [[UIWebView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; 
    [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:telNummer]]]; 
    webview.hidden = YES; 
    // Assume we are in a view controller and have access to self.view 
    [self.view addSubview:webview]; 
    [webview release];

}    

答案 2 :(得分:1)

不幸的是,Apple不允许这样做,因为当你执行openURL命令时,它将打开该应用程序,并且由于你无法访问该应用程序中的任何内容,因此你必须自己重新输入你的应用程序。但是,您可以在NSUserDefaults中保存自己的状态,然后让用户可以返回到应用程序的相同部分,就像他们离开时一样。点击此处获取帮助:iOS Human Interface Guidelines

答案 3 :(得分:1)

您可以在拨号应用对用户可见后2-3秒发送本地通知。 它并不完美,但点击本地通知并返回原始应用程序,双击主页按钮并切换应用程序更容易。

答案 4 :(得分:0)

NSURL * url = [NSURL URLWithString:@“telprompt://您的电话号码”];     [[UIApplication sharedApplication] openURL:url];

答案 5 :(得分:0)

这可能有用吗?

UIWebView webView = [[UIWebView alloc] init]; 
NSURL *url = [NSURL URLWithString:@"tel:123456789"]; 
[webView loadRequest:[NSURLRequest requestWithURL:url]];