WKWebView 禁止超链接长按
时间: 2023-09-03 20:16:55 浏览: 284
在 iOS 上,可以通过设置 `WKUIDelegate` 中的 `contextMenuConfigurationForElement` 方法来禁止超链接长按事件的默认行为,也就是禁止出现菜单(比如打开链接、复制链接等)。具体来说,可以在该方法中返回一个空的 `UIMenuConfiguration` 对象,例如:
```swift
class MyViewController: UIViewController, WKUIDelegate {
// ...
func webView(_ webView: WKWebView, contextMenuConfigurationForElement elementInfo: WKContextMenuElementInfo, completionHandler: @escaping (UIContextMenuConfiguration?) -> Void) {
completionHandler(UIContextMenuConfiguration())
}
}
```
上面的代码会禁止所有的超链接长按菜单。如果只想禁止某些超链接的长按菜单,可以在该方法中判断 `elementInfo.linkURL` 是否为需要禁止的超链接,例如:
```swift
class MyViewController: UIViewController, WKUIDelegate {
// ...
func webView(_ webView: WKWebView, contextMenuConfigurationForElement elementInfo: WKContextMenuElementInfo, completionHandler: @escaping (UIContextMenuConfiguration?) -> Void) {
if elementInfo.linkURL?.absoluteString == "https://www.example.com" {
completionHandler(UIContextMenuConfiguration())
} else {
completionHandler(nil)
}
}
}
```
这样就只会禁止链接为 `https://www.example.com` 的超链接长按菜单。注意,该方法只适用于使用 `WKWebView` 的 iOS 应用程序。
阅读全文