【问题标题】:How to disable popup when user taps phone number in WKWebView on iPad?当用户在 iPad 上的 WKWebView 中点击电话号码时如何禁用弹出窗口?
【发布时间】:2018-05-17 17:33:52
【问题描述】:

当用户点击WKWebView中的电话号码时,会出现弹出窗口:

如何拦截此类点击并执行自定义操作?

在 iPhone 上,我可以使用 WKNavigationDelegate 方法拦截对电话号码的窃听:

public func webView(_ webView: WKWebView,
                    decidePolicyFor navigationAction: WKNavigationAction,
                    decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    //....
    decisionHandler(.allow)
}

但在 iPad 上,弹出窗口只是出现并且没有调用委托方法。

【问题讨论】:

    标签: ios ipad wkwebview


    【解决方案1】:

    我可以想象几种方法,虽然我现在没有机会尝试它们。

    WKWebView 配置

    • dataDetectorTypes 等属性设置为.none,尽管这应该是默认值。

    • 使用setURLSchemeHandler(_:forURLScheme:) 忽略tel:// 方案

    HTML/JS

    • 在通过抓取显示 HTML 之前删除有问题的链接标签
    • 应用一些 Javascript 来捕获事件并使用 preventDefault() 或其他东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-10
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多