码迷,mamicode.com
首页 > Web开发 > 详细

UIWebView禁用长按弹出copy选择框

时间:2015-07-25 11:56:07      阅读:436      评论:0      收藏:0      [点我收藏+]

标签:

本文参考http://bbs.9ria.com/thread-227539-1-1.html  感谢hbnana大神

第一种加载html文件

再webview的加载完成的代理方法中添加一下代码

//禁止长按弹出图片的地址等

[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout=‘none‘;"];

//禁止长按复制

[self.webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect=‘none‘;"];

第二种加载pdf文件

第二种情况:如果UIWebView加载的是PDF文档,请参阅下贴
用uiwebview加载pdf应该是iOS里面最方便的浏览pdf的方式了。
但是可能有的客户会考虑到安全问题,要求禁止开启webview上面的
长按出现的复制文本或图片的功能。我的上一个项目客户就有这样的要求,
为了实现这个功能,我确实研究了一段时间。最终找到一个非常简单的实现
方法,只需多加几行代码即可。
今天拿出来和大家分享,能给正在纠结这问题的朋友们提供一些帮助那么最好了,
如果有熟悉这个功能的大牛们有更好的实现方法,也欢迎多多执教啦。。。。


  1. NSString *path = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"pdf"]; 
  2. NSURLRequest* pdfRequest = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]; 
  3. [self.pdfView loadRequest:pdfRequest]; 
  4. //在viewdidload或适当的地方创建一个自定义的长按手势 
  5. UILongPressGestureRecognizer *longPress = [[[UILongPressGestureRecognizer alloc] initWithTarget:self action:nil] autorelease]; 
  6. longPress.delegate = self; //记得在.h文件里加上<UIGestureRecognizerDelegate>委托 
  7. longPress.minimumPressDuration = 0.4; //这里为什么要设置0.4,因为只要大于0.5就无效,我像大概是因为默认的跳出放大镜的手势的长按时间是0.5秒, 
  8. //如果我们自定义的手势大于或小于0.5秒的话就来不及替换他的默认手势了,这是只是我的猜测。但是最好大于0.2 
  9. //秒,因为有的pdf有一些书签跳转功能,这个值太小的话可能会使这些功能失效。 
  10. [self.pdfView addGestureRecognizer:longPress]; 
  11. //接下来就是实现一个委托了 
  12. #pragma mark - GestureRecognizerDelegate 
  13. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
  14. return NO; //这里一定要return NO,至于为什么大家去看看这个方法的文档吧。 
  15. //还有就是这个委托在你长按的时候会被多次调用,大家可以用nslog输出gestureRecognizer和otherGestureRecognizer 
  16. //看看都是些什么东西。 
  17. }

UIWebView禁用长按弹出copy选择框

标签:

原文地址:http://www.cnblogs.com/bing-ge/p/4675432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!