研究半天还跟正常套路不一样,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, 以上分享如有什么不周的地方还请大家多多指点!

WKWebView 屏蔽长按手势 - iOS的更多相关文章

  1. iOS 利用长按手势移动 Table View Cells

    本文译自:Cookbook: Moving Table View Cells with a Long Press Gesture 目录: 你需要什么? 如何做? 如何将其利用至UICollection ...

  2. ios 实现在tableViewCell上面添加长按手势 删除该条cell以及列表后台数据等

    自己的代码  需要   把属性更改成自己要使用的 //创建长按手势 在cellForRowAtIndexPath代理方法中 UILongPressGestureRecognizer *longPres ...

  3. IOS 关于tableview中cell的长按手势

    说明:虽然是tableview中cell的长按手势  但是手势是添加在tableview上的 UILongPressGestureRecognizer *longpress = [[UILongPre ...

  4. iOS长按手势调用两次解决方法

    由于以前没有很细致的研究过长按手势,所以今天使用的时候发现长按手势会调用两次响应事件. 主要原因是长按手势会分别在UIGestureRecognizerStateBegan和UIGestureReco ...

  5. Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍

    1.UITapGestureRecognizer 点击/双击手势 代码如下: var tapGesture = UITapGestureRecognizer(target: self, action: ...

  6. JS案例 - 基于vue的移动端长按手势

    ================================惯例碎碎念前言================================ 当时首先想到要做长按事件的时候,我想到的是vue内部的自 ...

  7. WKWebView针对于Cordova的IOS平台性能提升

    使用cordova做跨平台开发已久,针对于Android的性能与页面渲染问题仍然让人头疼,因为仍然有一部分人使用性能一般的手机,版本在 4.2-4.4之间,甚至都无法支持HTML5的flex布局,使得 ...

  8. h5 input无法输入问题 屏蔽长按事件

    开发h5 app中突然发现在手机上长按文本会出现复制粘贴菜单,只要是文本长按都会出现这种情况确实有些不太符合交互,为此特意去翻了一下博客,得到了已下解决方案: 将所有元素的系统默认菜单禁用掉 *{ - ...

  9. UITableViewCell 添加长按手势

    UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self actio ...

随机推荐

  1. Unity ContextMenu 上下文菜单

    新建脚本: public class ContextTesting : MonoBehaviour { [ContextMenu("哈哈")] void DoSomething() ...

  2. rail 怎样在已有数据库上继续开发

    今天刷贴看到了这篇文章http://ruby-china.org/topics/16493,老大回复的很有意义,在这里备份一个 而要把现有的数据库纳入 Migration,一个简单方法: 创建一个空 ...

  3. 提交表单之前对表单进行检查的方法 onsubmit="return checkSubmit();"

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. ASP.NET那点不为人知的事(一)

    http://www.cnblogs.com/OceanEyes/archive/2012/08/13/aspnetEssential-1.html#_label0 我们上网时,在浏览器地址输入网址: ...

  5. VUE中给template组件加背景

    <template> <div class="index_background" > </div> </template> < ...

  6. avalon教程-简介

    avalon是什么? avalon是一个MVVM框架, Modle-模型层,即为js中从后台接口中取出的数据,例如一个对象或者对象数组,并对这些数据进行一定的格式化.常见的返回数据是这样的{id : ...

  7. js获取日期:前天、昨天、今天、明天、后天

    前天,昨天,今天,明天,后天 <html> <head> <meta http-equiv="Content-Type" content=" ...

  8. Windows之CMD查看系统信息

    Windows 系统通过命令行(CMD)查询系统信息有两种方式: 1.图形化界面: 在“运行”中键入CMD,然后输入 dxdiag,回车后弹出图形化界面 ------ DirectX 诊断工具. 2. ...

  9. Android Studio 小技巧(2):AS中Button文字默认大写的问题

    问题类型 设置Layout中添加一个Button <Button android:id="@+id/bt_showerror" android:layout_width=&q ...

  10. Python3爬虫04(其他例子,如处理获取网页的内容)

    #!/usr/bin/env python# -*- coding:utf-8 -*- import osimport reimport requestsfrom bs4 import Navigab ...