iOS app 里面打电话应该算是个比较常见的需求了,一般常用的方法是利用 UIApplication
里的 -openURL:
方法,但是这样打完电话之后就会停留在 Phone.app 里面了。就像这样:
NSURL *phoneCallURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:112"]];
[[UIApplication sharedApplication] openURL:phoneCallURL];
其实这种行为也是能预料到的,tel:
肯定是 Phone.app 注册的嘛。
不过利用 UIWebView
就能在拨打电话之后返回自己的应用。
_phoneCallWebView = [[UIWebView alloc] init];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"tel:112"]];
[_phoneCallWebView loadRequest:request];
用这个方法不需要自己添加确认的 action sheet 或者 alert view 了,会自动弹出来一个 alert view。另外可以用 UIWebView
的 delegate 方法 -webView:didFailLoadWithError:
来检测不能打电话的设备,在不能打电话的设备上打开 tel:
URL 的时候这个方法会被调用。
Comments