我正在将iOS应用程序表单UIWebView迁移到WKWebView。到目前为止一直这么好......在之前的应用程序中我禁用了长按并实现了自定义长按(以进行链接的自定义处理),但是我无法在WKWebView中使用它
我尝试了以下内容:
- (void)webView:(WKWebView *)wkWebView didFinishNavigation:(WKNavigation *)navigation {
[wkWebView evaluateJavaScript:@"document.body.style.webkitTouchCallout='none';" completionHandler:nil];
}
我已经检查过并且该行被执行,该呼叫的响应是@“无”
但它回应: 警告:尝试显示其视图不在窗口层次结构中!
有什么想法吗? 的解决方案: 将javascript注入wkwebview现在可以正常工作!
[self.wkWebView evaluateJavaScript:@"document.body.style.webkitTouchCallout='none';" completionHandler:nil];
答案 0 :(得分:10)
这是Swift 3.0中的解决方案:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
webView.evaluateJavaScript("document.body.style.webkitTouchCallout='none';")
}
答案 1 :(得分:1)
我还没有对其进行验证,但看起来您也可以使用CSS来禁用此功能:
-webkit-touch-callout: none;
来源:https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-touch-callout
答案 2 :(得分:0)
myWkWebView.allowsLinkPreview = false