WKWebView 屏蔽长按手势 - iOS
研究半天还跟正常套路不一样,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的更多相关文章
- iOS 利用长按手势移动 Table View Cells
本文译自:Cookbook: Moving Table View Cells with a Long Press Gesture 目录: 你需要什么? 如何做? 如何将其利用至UICollection ...
- ios 实现在tableViewCell上面添加长按手势 删除该条cell以及列表后台数据等
自己的代码 需要 把属性更改成自己要使用的 //创建长按手势 在cellForRowAtIndexPath代理方法中 UILongPressGestureRecognizer *longPres ...
- IOS 关于tableview中cell的长按手势
说明:虽然是tableview中cell的长按手势 但是手势是添加在tableview上的 UILongPressGestureRecognizer *longpress = [[UILongPre ...
- iOS长按手势调用两次解决方法
由于以前没有很细致的研究过长按手势,所以今天使用的时候发现长按手势会调用两次响应事件. 主要原因是长按手势会分别在UIGestureRecognizerStateBegan和UIGestureReco ...
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
1.UITapGestureRecognizer 点击/双击手势 代码如下: var tapGesture = UITapGestureRecognizer(target: self, action: ...
- JS案例 - 基于vue的移动端长按手势
================================惯例碎碎念前言================================ 当时首先想到要做长按事件的时候,我想到的是vue内部的自 ...
- WKWebView针对于Cordova的IOS平台性能提升
使用cordova做跨平台开发已久,针对于Android的性能与页面渲染问题仍然让人头疼,因为仍然有一部分人使用性能一般的手机,版本在 4.2-4.4之间,甚至都无法支持HTML5的flex布局,使得 ...
- h5 input无法输入问题 屏蔽长按事件
开发h5 app中突然发现在手机上长按文本会出现复制粘贴菜单,只要是文本长按都会出现这种情况确实有些不太符合交互,为此特意去翻了一下博客,得到了已下解决方案: 将所有元素的系统默认菜单禁用掉 *{ - ...
- UITableViewCell 添加长按手势
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self actio ...
随机推荐
- [转]Jquery Mobile dialog的生命周期
本文转自:http://www.cnblogs.com/jackhuclan/archive/2012/04/05/2432972.html JQuery Mobile对htm5的移动开发绝对是个好用 ...
- apache2.2多域名绑定
apache2.2多域名绑定不同目录,将代码放在httpd.conf最后 NameVirtualHost *:80 <VirtualHost *:80> ServerName wo.com ...
- rman对应format参数说明
format 的替换变量,注意大小写! 1. %d --数据库的db_name 2. %n --数据库的8位长度的db_name,不足部分用“x”后面填充 3. %N -- ...
- HDU 5532——Almost Sorted Array——————【技巧】
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- grunt项目构建
最近想把项目里添加grunt,说白了就是前端自动化管理,具体配置如下: 用到以下几个部件: grunt-contrib-cssmin grunt-contrib-uglify grunt-contri ...
- js获取省市
前台代码 @{ IList<Provinces> allProvinces = ViewBag.AllProvinces; IList<Districts> allDistri ...
- 5.vs的各个组成部分
启动vs (1).双击vs的打开图标 (2).输入devenv 编写项目时,命名的时候,尽量不要使用中文. 我们暂时将.cs文件理解为是一个类文件. 在 视图菜单 下可以打开 解决方案资源管理器 ...
- spring注入bean的五种方式
1.属性注入 2.构造方法注入 3.静态工厂注入 package com.voole.factorybeans; import com.voole.beans.TestBean; public cla ...
- Redis入门--(二)Redis的安装
1.建议安装在Linux服务器上来运行测试的
- Lync二次开发关于Lync启动退出问题
以前使用C++开发的version.dll文件,由于各个用户环境的不同,造成某些用户加载不了我们开发的插件,并且写version.dll的同事还没找到好的解决办法,所以得换一种思路去解决这个问题,就是 ...