代码改变世界

iOS 拨打电话功能

2016-03-02 12:40  一树一菩提  阅读(173)  评论(0编辑  收藏  举报
方法一:合法的,而且有弹框是否拨号
在.h文件中先声明一个UIWebView 的对象 phoneCallWebView(注意:phoneCallWebView必须是全局变量

然后在.m文件中添加如下代码;

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath {

NSString *phoneNum = @"12301";// 电话号码
    
    NSURL *phoneURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",phoneNum]];  
    
    if ( !phoneCallWebView ) {          
        
        phoneCallWebView = [[UIWebView alloc] initWithFrame:CGRectZero];// 这个webView只是一个后台的容易 不需要add到页面上来  效果跟方法二一样 但是这个方法是合法的
        
    } 
    [phoneCallWebView loadRequest:[NSURLRequest requestWithURL:phoneURL]];
}

如果在方法里定义phoneCallWebView,phoneCallWebView就是局部变量,在方法外就失效了不执行拨打电话功能了。


方法二 拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示

NSMutableString *str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"186xxxx6979"];

// NSLog(@"str======%@",str);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];