惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
U
Unit 42
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
I
InfoQ
WordPress大学
WordPress大学
H
Help Net Security
D
Docker
B
Blog
腾讯CDC
A
About on SuperTechFans
Recent Announcements
Recent Announcements
雷峰网
雷峰网
有赞技术团队
有赞技术团队
C
Check Point Blog
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

Oragekk's Blog

A2UI:当 AI Agent 开始直接生成界面 OpenSpec 技术分享:用规格驱动 AI 编程 ChatGPT&Codex订阅教程 一个 waline 评论系统bug引发的思考 Jenkins 远程触发构建踩坑记 Git SSH 密钥配置 初识Rust vuepress-plugin-meting2 谷歌发布多平台应用开发神器Project IDX!PaLM 2加持 Vue常见优化手段 Vue2响应式原理解析 Dart 中的并发 Flutter 工作原理 如何利用GitHub Action提交URL到搜索引擎 提交URL到搜索引擎(百度、Bing、Google) GitHub Actions 使用介绍 素材设计 前端-Q&A 浏览器的事件循环 你不知道的 CSS 之包含块 CSS 属性计算过程 Vercel deploy忽略指定分支 评论插件 Waline 之邮件通知配置 公开API 终端究极美化iTerm2+Pure 使用Bing API提交网站URL Flutter 基础大集合 关于本站 关于本站 关于我
Test Three ways to call
Oragekk · 2016-11-12 · via Oragekk's Blog

LabelPhoneNum

使用 YYtext 实现 label 中的某些文字点击拨打电话---Github

真机测试结果

设备型号:iphone6s

系统:10.1.1

Xcode 版本:8.1

三种打电话的方法

方法一:网上说使用此方法,电话结束后进入联系人列表,测试结果为:正常,电话结束后返回程序

    +(void)callPhoneOne:(NSString *)phoneNum{
    UIApplication *application = [UIApplication sharedApplication];
    /*--------拨号方法一-----------*/
    // 使用此方法,电话结束后进入联系人列表
    NSString *num1 = [NSString stringWithFormat:@"tel://%@",phoneNum];
    [application openURL:[NSURL URLWithString:num1] options:@{} completionHandler:^(BOOL success) {}];
    }

方法二:测试结果为先弹窗后拨打,呼叫结束后返回程序,是否可以通过审核无法确认

    +(void)callPhoneTwo:(NSString *)phoneNum{
    UIApplication *application = [UIApplication sharedApplication];
        /*--------拨号方法二-----------*/
        //这个方法则打电话前先弹框  是否打电话 然后打完电话之后回到程序中 网上说这个方法可能不合法 无法通过审核
        NSString *num2 = [NSString stringWithFormat:@"telprompt://%@",phoneNum];
        [application openURL:[NSURL URLWithString:num2] options:@{} completionHandler:^(BOOL success) {}];

    }

方法三:调用 UIWebView 进行呼叫功能,测试结果为:弹窗速度稍慢,电话挂掉之后返回程序

    // 要在出发呼叫功能前不被release需要强引用
    @property (nonatomic,strong) UIWebView *phoneCallWebView;
    #pragma mark - 拨号方法三,会稍微慢于前两种方法
    - (void)callPhoneThree:(NSString *)phoneNum{
    /*--------拨号方法三-----------*/
    NSURL *phoneURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",phoneNum]];
    if ( !_phoneCallWebView ) {

        _phoneCallWebView = [[UIWebView alloc] initWithFrame:CGRectZero];// 这个webView只是一个后台的容易 不需要add到页面上来  效果跟方法二一样 但是这个方法是合法的
    }
    [_phoneCallWebView loadRequest:[NSURLRequest requestWithURL:phoneURL]];
   }
  • 总结来说除了第二种不知是否可以通过审核,其余方法均可实现呼叫并返回程序功能。

  • 只是第一种方法爱需要手动弹出 AlertViewController;

  • 第三种方法优势在于可以自动识别电话格式并弹窗,如号码为:01088867777 弹窗为 010-88867777。并且代码相对于第一种来说极为精简,少了自定义 AlertViewController 的步骤