zoukankan      html  css  js  c++  java
  • 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, 以上分享如有什么不周的地方还请大家多多指点!

  • 相关阅读:
    异常机制和File类
    《JAVA程序设计》_第五周学习总结
    20165214 第五周学习任务
    20165214 第四周学习任务
    20165214 第三周学习任务
    20165214 预备作业3 Linux安装及学习
    20165313 预备作业3 Linux安装及学习
    学习基础和C语言基础调查
    20165313 我期望的师生关系
    int *ptr=(int *)(&a+1)
  • 原文地址:https://www.cnblogs.com/survivorsfyh/p/9211929.html
Copyright © 2011-2022 走看看