我已经实现了一个视图控制器,它显示一个WKWebView
. Web 视图显示包含带有a
标签的链接的某些页面,例如:
<a id="dien10000513721" href="/ge/tr/issue.html" class="dien">Issue</a>
我想通过在 Web 视图中激活 3d-Touch 来为这些链接添加预览,但是webView:shouldPreviewElement:
当我在带有 iOS 11 的 iPhone 7 上运行我的应用程序并对该链接进行强制触摸时,从未调用过委托方法。
当我创建了我的 web 视图并设置了必要的属性时
theWebView.navigationDelegate = self;
theWebView.UIDelegate = self;
theWebView.allowsLinkPreview = YES; // Setting this to NO doesn't help
self.webView = theWebView;
用于预览的三个委托方法被实现为假人:
- (BOOL)webView:(WKWebView *)inWebView shouldPreviewElement:(WKPreviewElementInfo *)inElementInfo {
NSLog(@"url = %@", inElementInfo.linkURL);
return NO;
}
- (UIViewController *)webView:(WKWebView *)inWebView previewingViewControllerForElement:(WKPreviewElementInfo *)inElementInfo defaultActions:(NSArray<id<WKPreviewActionItem>> *)inPreviewActions {
return nil;
}
- (void)webView:(WKWebView *)webView commitPreviewingViewController:(UIViewController *)previewingViewController {
NSLog(@"");
}
我还需要执行任何重要的配置步骤吗?还有什么可以阻止 3D 触摸事件的执行?