• WKWebView 屏蔽长按手势


    研究半天还跟正常套路不一样,WKWebView 需要将 JS 注入进去,套路啊 ... 

    查半天资料,为了后者们开发可以提高效率,特此分享一下,不到的地方多多包涵哈.

    废话不多说,直接上 code,将如下 code 直接 copy 进 WKWebView 控件实例化的地方即可.

    //禁止长按弹出 UIMenuController 相关
    
    //禁止选择 css 配置相关
    
    NSString*css = @"body{-webkit-user-select:none;-webkit-user-drag:none;}";
    
    //css 选中样式取消
    
    NSMutableString*javascript = [NSMutableStringstring];
    
    [javascript appendString:@"var style = document.createElement('style');"];
    
    [javascript appendString:@"style.type = 'text/css';"];
    
    [javascript appendFormat:@"var cssContent = document.createTextNode('%@');", css];
    
    [javascript appendString:@"style.appendChild(cssContent);"];
    
    [javascript appendString:@"document.body.appendChild(style);"];
    
    [javascript appendString:@"document.documentElement.style.webkitUserSelect='none';"];//禁止选择
    
    [javascript appendString:@"document.documentElement.style.webkitTouchCallout='none';"];//禁止长按
    
    //javascript 注入
    
    WKUserScript *noneSelectScript = [[WKUserScript alloc] initWithSource:javascript
    
    injectionTime:WKUserScriptInjectionTimeAtDocumentEnd
    
    forMainFrameOnly:YES];
    
    WKUserContentController*userContentController = [[WKUserContentControlleralloc] init];
    
    [userContentController addUserScript:noneSelectScript];
    
    WKWebViewConfiguration*configuration = [[WKWebViewConfigurationalloc] init];
    
    configuration.userContentController = userContentController;
    
    
    
    //控件加载
    
    [self.wkWebView.configuration.userContentControlleraddUserScript:noneSelectScript];

    Over, 以上分享如有什么不周的地方还请大家多多指点!

  • 相关阅读:
    文件下载链接
    Python Web服务器
    打印字符串替换
    python 将数据写入excel
    python Telnet通讯
    Python 串口通讯
    monkey 原理,环境搭建、命令详解
    Andriod 四大组件,六大布局
    python练习题100例
    Activity的基本概念与Activity的生命周期
  • 原文地址:https://www.cnblogs.com/survivorsfyh/p/9211929.html
Copyright © 2020-2023  润新知