KINWebBrowser是用于 iOS 应用程序的开源 Web 浏览器模块。我最近升级了 KINWebBrowser 以使用 WKWebView开始逐步淘汰 UIWebView。这产生了显着的改进,但是:
问题:WKWebView 不允许用户启动包含电话号码、电子邮件地址、 map 等 URL 的链接。
当从显示页面作为链接启动时,如何配置 WKWebView 以启动这些备用 URL 的标准 iOS 行为?
有关 WKWebKit 的更多信息
最佳答案
通过将此函数添加到您的 KINWebBrowserViewController.m,我能够使其适用于 Google map 链接(这似乎与 target="_blank")和 tel: scheme
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
if(webView != self.wkWebView) {
decisionHandler(WKNavigationActionPolicyAllow);
return;
}
UIApplication *app = [UIApplication sharedApplication];
NSURL *url = navigationAction.request.URL;
if (!navigationAction.targetFrame) {
if ([app canOpenURL:url]) {
[app openURL:url];
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
}
if ([url.scheme isEqualToString:@"tel"])
{
if ([app canOpenURL:url])
{
[app openURL:url];
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
}
decisionHandler(WKNavigationActionPolicyAllow);
}
关于ios - 在 WKWebView 中启动电话/电子邮件/ map 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501172/