在WKWebView上禁用WKActionSheet

时间:2014-10-20 07:26:31

标签: uiactionsheet wkwebview

我正在将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];

3 个答案:

答案 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