美文网首页
iOS WKWebView禁用PDF长按手势

iOS WKWebView禁用PDF长按手势

作者: 叹息之树 | 来源:发表于2019-05-06 17:39 被阅读0次

PDF文件使用WKWebView展示的时候使用以下方法并不能禁用长按手势

[self.webView evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout='none';" completionHandler:nil];
[self.webView evaluateJavaScript:@"document.documentElement.style.webkitUserSelect='none';"completionHandler:nil];

需要找到pdf展示出来的时候删除掉加载在WKScrollView上的长按手势,即使WKWebView触发了didFinishNavigation代理方法,也不能立马获取到PDF的长按手势,因为PDF加载需要时间,这里延时0.3s可以获取到长按手势,然后禁用就行

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    
    // 禁用长按效果
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        
        for (UIView *view in self.webView.subviews) {
            
            if ([NSStringFromClass([view class]) isEqualToString:@"WKScrollView"]) {
                
                for (UIGestureRecognizer *gesture in view.gestureRecognizers) {
                    if ([NSStringFromClass([gesture class]) isEqualToString:@"UILongPressGestureRecognizer"]) {
                        [view removeGestureRecognizer:gesture];
                    }
                }
            }
        }
    });
    
}

相关文章

网友评论

      本文标题:iOS WKWebView禁用PDF长按手势

      本文链接:https://www.haomeiwen.com/subject/zopdoqtx.html