研究半天还跟正常套路不一样,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. css3制作梯形导航

    /*HTML*/<div class="nav"> <a href="javascript:;">首页</a> <a ...

  2. OpenStack Weekly Rank 2015.07.27

    Module Reviews Drafted Blueprints Completed Blueprints Filed Bugs Resolved Bugs Cinder 7 1 1 7 10 Sw ...

  3. Kure讲HTML_如何学习HTML

    HTML即是超文本标记语言,它主要是用来构建网页的轮廓的.HTML自身包含了众多的API(应用程序接口:即HTML暴露给Web前端开发者的语言特性,当然作为开发者就应该更多的关注这个.)话不多说,直接 ...

  4. cmd/bat 判断日期,并删除文件

    代码来自互联网. ---------------------------------------- @echo off set a=2018-07-9 set ndate=%date:~,10%set ...

  5. get post put delete

    get:获取资源 幂等 post:执行不安全和非幂等操作(幂等:多次请求于一次请求的效果一样) put:更新资源  幂等 delete:删除资源  幂等 如何理解幂等: public book { p ...

  6. JSON语法格式

    一.JSON数据格式 名称/值对 二.JSON值对数据类型 数字    字符串   逻辑值    数组(在方括号中)     对象 (在花括号中)     null eg: { "staff ...

  7. Java设计模式—中介者模式

    中介者模式是一种并不常用的模式,在此简单阐述阐述. 定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 类型:行为类模式 ...

  8. 转:用AutoCAD 系统变量编程

    Autocad的系统变量, 我们可以通过如下得到: Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable(/*MSG0* ...

  9. FRM-40654 Record has been updated

    该错误是由于界面上对数据进行了修改后(比如为A),将修改前的数据(B)与数据库中的数据(B)进行配不成功时报错: 首先确认Form界面是否有其他人对数据进行修改: 如果无人修改: 将数据库的数据查询出 ...

  10. lunix重启service network restart错误Job for network.service failed. See 'system 或Failed to start LSB: Bring

    1.mac地址不对 通过ip addr查看mac地址,然后修改cd /etc/sysconfig/network-scripts/目录下的文件里面的mac地址 2.通过以下方法 systemctl s ...