ios webview 怎么去掉长按后的选择和复制等我菜单?

ios webview 怎么去掉长按后的选择和复制等我菜单?图片描述

阅读 14.9k
4 个回答

首先userinterface的方案是不可取的。其次这个需求,你可以选择两种方式,webview内执行js代码,或者前端直接控制。

/**
 *  页面加载完成之后调用
 *
 *  @param webView    实现该代理的webview
 *  @param navigation 当前navigation
 */
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    
    NSLog(@"%s", __FUNCTION__);
    // 禁用选中效果
    [self.webView evaluateJavaScript:@"document.documentElement.style.webkitUserSelect='none'" completionHandler:nil];
    [self.webView evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout='none'" completionHandler:nil];
    
}
新手上路,请多包涵

userinterface=false

可以尝试丢给h5

<style type="text/css">
*:not(input,textarea) {
    -webkit-touch-callout: none;
    -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
}
</style>

SO上面的答案
大部分尝试了 iOS9的环境下,模拟器貌似都无效,你可以真机跑下

func webViewDidFinishLoad(webView: UIWebView) {
    //禁用webview长按后文字选择框和放大框
    webView.stringByEvaluatingJavaScriptFromString("document.documentElement.style.webkitUserSelect='none'")
    webView.stringByEvaluatingJavaScriptFromString("document.documentElement.style.webkitTouchCallout='none'")
  }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏