微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 在WKWebView中启动电话/电子邮件/地图链接

KINWebBrowser是适用于iOS应用程序的开源Web浏览器模块.我最近升级了KINWebbrowser以使用 WKWebView开始逐步淘汰UIWebView.这会带来显着的改善,但是:

问题:WKWebView不允许用户启动包含电话号码,电子邮件地址,地图等URL的链接.

如何从显示页面中将链接作为链接启动时,如何配置WKWebView以启动这些备用URL的标准iOS行为?

所有的code is available here

有关WKWebKit的更多信息

issue on the KINWebBrowser GitHub here

解决方法

我能够通过将此函数添加到您的KINWebbrowserViewController.m来使其适用于Google Maps链接(似乎与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);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐