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);
}

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...