在WKWebView中捕获并拨打电话号码

Tam*_*isk 4 ios swift wkwebview

我有一个WKWebView,我想要在选择号码时拨打号码.Web视图的内容包含HTML锚标记"tel:",我正在寻找一种方法来捕获它.哪个函数用于捕获这些标记?

Car*_*Zyl 12

设置webView的navigationDelegate属性并实现委托的以下功能(WKNavigationDelegate)

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void) {
    if navigationAction.request.url?.scheme == "tel" {
        UIApplication.shared.openURL(navigationAction.request.url!)
        decisionHandler(.cancel)
    } else {
        decisionHandler(.allow)
    }
}
Run Code Online (Sandbox Code Playgroud)

由于iOS的10,你还可以设置dataDetectorTypes.phoneNumberWKWebViewConfiguration.所有检测到的电话号码将转换为包含电话号码周围的链接,因此当点击电话号码时,将使用带有"tel"方案的URL触发上述功能.

configuration.dataDetectorTypes = .phoneNumber
Run Code Online (Sandbox Code Playgroud)

  • decisionHandler(.allow)应该在else中. (2认同)