美文网首页
iOS利用UIWebView进行呼叫的分析说明

iOS利用UIWebView进行呼叫的分析说明

作者: 无聊的啊飞 | 来源:发表于2015-10-11 08:56 被阅读0次

    一直以来,应用内进行直接电话呼叫都是用的如下代码:

    let phoneURL = NSURL(string: "tel://139xxxxxxx")!
    UIApplication.sharedApplication().openURL(phoneURL)
    

    出于安全性考虑并经过搜索,可以通过UIWebView进行电话呼叫,网络上给出的方案如下:

    let phoneURL = NSURL(string: "tel://139xxxxxxx")!
    let callWebView = UIWebView()
    callWebView.loadRequest(NSURLRequest(URL: phoneURL))
    self.view.addSubview(callWebView)
    
    经过测试,功能上可以实现应用内呼叫的逻辑,但是对最后一句代码(self.view.addSubview(callWebView))表示不理解。后经过个人测试,这是一个很不好的实践,因为callWebView只有在它的superview被释放的时候才能被释放,当呼叫动作是按钮触发并对其进行频繁点击的时候,会生成若干UIWebView的实例并不能及时释放。
    进一步测试,之所以将callWebView添加到某个view上,只是为了让其在触发呼叫功能之前不被release掉,所以只需要有地方能引用这个webView即可。以下给出一种方式,具体可按需实现:
    先声明变量
    lazy var callWebView = UIWebView()
    
    let phoneURL = NSURL(string: "tel://139xxxxxxx")!
    self.callWebView.loadRequest(NSURLRequest(URL: phoneURL))

    相关文章

      网友评论

          本文标题:iOS利用UIWebView进行呼叫的分析说明

          本文链接:https://www.haomeiwen.com/subject/swzncttx.html