最近手头上使用h5页面做活动遇到页面长按出现菜单栏,超链接出现链接的问题
网上的方法是
[webView evaluateJavaScript:@"document.documentElement.style.webkitUserSelect='none';" completionHandler:nil];
[webView evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout='none';" completionHandler:nil];
但是这样写没办法拦截超链接,后来换了个思路先替换掉iOS webview的长按事件。不行
然后展开页面
找到WKContentViewMinusAccessoryView里有长按事件索性直接干掉
for (UIView* subview in self.webViewWK.scrollView.subviews) {
if ([subview isKindOfClass:NSClassFromString(@"WKContentViewMinusAccessoryView")])
{
for (UIGestureRecognizer* longPress in subview.gestureRecognizers) {
if ([longPress isKindOfClass:UILongPressGestureRecognizer.class]) {
[subview removeGestureRecognizer:longPress];
}
}
}
}
Tip: iOS11好像去掉了WKContentViewMinusAccessoryView 长按事件加到WKContentView里面 ,具体看图层
大功告成
ok