最近在做VOIP网络电话,其中有个需求就是网络质量不好的情况下需要调用系统的打电话功能,也就是运营商电话(这个有个专业术语PSTN)。我从网上找了两个方法,都能实现这个功能,测试通过的。两个方法稍微有点点不通。
方法一:直接拨打,好比是在通话记录中直接拨打选中的号码
-(void)system_makeCall:(NSString *) callNumber{
//获取目标号码字符串,转换成URL
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",callNumber]];
//调用系统方法拨号
[[UIApplication sharedApplication] openURL:url];
}
方法二:弹框提示,就像是在通话记录中拨打选中的号码时会弹出一个提示框,然后点击呼叫才会拨打电话
//拨打电话会弹框提示,不建议用
-(void)system_makeCall:(NSString *) callNumber vc:(UIViewController *) vc{
UIWebView *callWebview =[[UIWebView alloc] init];
NSURL *telURL =[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",callNumber]];
[callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
//记得添加到view上
[vc.view addSubview:callWebview];
}
有图片比较直观,可能文字描述的不太清楚,后续我把效果图补上。