当用户在 iPad 上的 WKWebView 中点击电话号码时如何禁用弹出窗口?
Posted
技术标签:
【中文标题】当用户在 iPad 上的 WKWebView 中点击电话号码时如何禁用弹出窗口?【英文标题】:How to disable popup when user taps phone number in WKWebView on iPad? 【发布时间】:2018-05-17 17:33:52 【问题描述】:当用户点击WKWebView
中的电话号码时,会出现弹出窗口:
如何拦截此类点击并执行自定义操作?
在 iPhone 上,我可以使用 WKNavigationDelegate
方法拦截对电话号码的窃听:
public func webView(_ webView: WKWebView,
decidePolicyFor navigationAction: WKNavigationAction,
decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
//....
decisionHandler(.allow)
但在 iPad 上,弹出窗口只是出现并且没有调用委托方法。
【问题讨论】:
【参考方案1】:我可以想象几种方法,虽然我现在没有机会尝试它们。
WKWebView 配置
将dataDetectorTypes
等属性设置为.none
,尽管这应该是默认值。
使用setURLSchemeHandler(_:forURLScheme:)
忽略tel://
方案
html/JS
在通过抓取显示 HTML 之前删除有问题的链接标签 应用一些 javascript 来捕获事件并使用preventDefault()
或其他东西。
【讨论】:
以上是关于当用户在 iPad 上的 WKWebView 中点击电话号码时如何禁用弹出窗口?的主要内容,如果未能解决你的问题,请参考以下文章
Wikipedia 在 iPad 上以不同方式呈现 WkWebView 和 Safari
当用户触摸弹出框外部时,禁用 ipad 上的 ActionSheet 关闭
iOS WKWebView javascript警报在ipad上崩溃