問題
近期有個需求,需要在WKWebView加載PDF中,基於安全的理由,屏蔽【複製、選擇全部】等功能彈窗
解決方案
捕捉長按手勢後進行屏蔽,問題是,原來手勢是放在view的subview中,導致一直屏蔽view的長按手勢沒法生效
// 頁面加載完成之後調用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
DebugLog(@"WKWebViewFinishNavigation");
// 禁用長按效果
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
for (UIView *view in webView.subviews) {
for (UIView * subview in view.subviews) {
for (UIGestureRecognizer *gesture in subview.gestureRecognizers) {
if ([NSStringFromClass([gesture class]) isEqualToString:@"UILongPressGestureRecognizer"]
) {
[subview removeGestureRecognizer:gesture];
}
}
// if ([NSStringFromClass([subview class]) isEqualToString:@"_UISizeTrackingView"]) {
// NSLog(@"gestureRecognizers:%@",subview.gestureRecognizers);
//
// }
}
}
});
}