iOS 手机常见功能总结(一)

前言 常见的那些功能,其实经常用不到,但是用到的时候又是经常用的到,总结一下,以免一时脑子瓦特想不起来

一:打电话

随着API的更新,打电话的方式也在改变

1、旧的API :openURL
- (void)callType01 {
   
    NSURL *url = [NSURL URLWithString:@"tel://10086"];
    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"tel://"]]) {
   
        BOOL result = [[UIApplication sharedApplication]openURL:url];
        NSLog(@"%d",result);
    }
}

简述:该api在iOS10.0被弃用
iOS9.0以前,打电话前没有弹窗提示、通话结束后不能返回到app;
在iOS10.2以前,打电话前没有弹窗提示;
在10.2.1开始,有弹窗提示。
返回指是一个BOOL类型,通过返回值来判断呼叫状态

2、新的API : openURL:url options: completionHandler:
- (void)callType02 {
   
    NSURL *url = [NSURL URLWithString:@"tel://10086"];
    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"tel://"]]) {
   
        [[UIApplication sharedApplication]openURL:url options:@{
   } completionHandler:nil];
    }
}

简述:iOS10.0之后的新API
iOS10.2之前,没有弹窗提示,之后有弹窗提示,结束之后能返回到当前app
completionHandler返回值能获得呼叫状态

附 :

在旧的API中,部分版本没吊起电话前没有弹窗提示,这会引起误操作呼叫电话,造成不必要的麻烦,所以会使用

NSURL *url =[NSURL URLWithString:@“telprompt://10000”];

把@“tel://” 修改成@“telprompt://”,这样在呼叫之前就会有弹窗提示;但是从后续的API发展看,apple似乎也注意到了直接呼出没有弹窗提示的弊端,这不符合苹果的安全意识逻辑,后续的系统版本陆续加上弹窗提示,所以再没必要这么使用了,而且这么使用可能会引起上架审核失败,所以仅限于了解便可

3、利用WebView吊起电话
3.1 UIWebView
- (void)callType03 {
   
    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel://10010"]]];
    [self.view addSubview:webView];
}

简述 :版本的分界线已经不清楚了,用的12的版本测试在呼叫之前是有弹窗提示的,在iOS 13之后,官方建议别再使用UIWebView,所以新的项目还是尽量去使用WKWebView去处理

3.2 WKWebView
- (void)webView:(WKWebView *)webView
    decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction
                    decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
   
                    
    NSURL *url = navigationAction.request.URL;
    NSString *scheme = [url scheme];
    UIApplication *app = [UIApplication sharedApplication];
    // 打电话
    if ([scheme isEqualToString:@"tel"]) {
   
        if ([app canOpenURL:url]) {
   
            if (@available(iOS 10.0, *)) {
   
                [[UIApplication sharedApplication] openURL:url options:@{
   } completionHandler:nil];
            } else {
   
                [[UIApplication sharedApplication] openURL:url]</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值