zoukankan      html  css  js  c++  java
  • UIWebView 屏蔽长按拷贝功能

     

    1:该方法适应加载 HTML格式的文档

    在webViewDidFinishLoad执行一个js语句,

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

    2:该方法适应加载PDF格式的文档(方法从网络上获取,没有经过实际测试)

    linkAddress:http://www.cocoachina.com/bbs/simple/?t102913.html

    关于实现uiwebview加载pdf禁止长按复制的功能

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


    <pre class="objc; toolbar: true; auto-links: false;">
        NSString *path = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"pdf"];

        NSURLRequest* pdfRequest = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];
        [self.pdfView loadRequest:pdfRequest];
        
        //在viewdidload或适当的地方创建一个自定义的长按手势
        UILongPressGestureRecognizer *longPress = [[[UILongPressGestureRecognizer alloc] initWithTarget:self action:nil] autorelease];
        longPress.delegate = self;   //记得在.h文件里加上<UIGestureRecognizerDelegate>委托
        longPress.minimumPressDuration = 0.4;  //这里为什么要设置0.4,因为只要大于0.5就无效,我像大概是因为默认的跳出放大镜的手势的长按时间是0.5秒,
                                                                                   //如果我们自定义的手势大于或小于0.5秒的话就来不及替换他的默认手势了,这是只是我的猜测。但是最好大于0.2
                                                                                   //秒,因为有的pdf有一些书签跳转功能,这个值太小的话可能会使这些功能失效。
        [self.pdfView addGestureRecognizer:longPress];
        //接下来就是实现一个委托了
    #pragma mark - GestureRecognizerDelegate

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    {    
        return NO;  //这里一定要return NO,至于为什么大家去看看这个方法的文档吧。
                            //还有就是这个委托在你长按的时候会被多次调用,大家可以用nslog输出gestureRecognizer和otherGestureRecognizer
                            //看看都是些什么东西。
    }
    </pre>

    好用的话记得顶一个哦

  • 相关阅读:
    JAVA 网格布局管理器
    JAVA 流式布局管理器
    JAVA 边界布局管理器
    JAVA 图形界面 JFrame容器
    MySQL联合查询语法内联、左联、右联、全联
    ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
    ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL
    MVC过滤器详解
    Dapper的基本使用
    JQuery fullcalender文档
  • 原文地址:https://www.cnblogs.com/xingchen/p/2657151.html
Copyright © 2011-2022 走看看