I have web-view
基于应用程序和公司中的其他本机应用程序。我们正在使用universal links
在需要时将用户重定向到其他应用程序(其他应用程序仍然支持universal links
- 我可以通过按链接来运行它们Apple Notes app
)。
我们最近过渡到WKWebView
(from UIWebView
),这提供了更好的体验。但是更新之后Universal Links
停止工作,当用户按下我们应用程序内的链接时,我们无法启动其他应用程序。
根据文档:
“通用链接让 iOS 9 用户在点击链接时可以打开您的应用程序
您的网站位于 WKWebView 和 UIWebView 视图以及 Safari 页面中,
除了导致调用 openURL: 的链接之外,例如那些
发生在邮件、消息和其他应用程序中。”
Source:https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html
看起来WKWebView
不处理Universal Links
。我的问题是,我是否缺少一些特殊配置WKWebView
或者这是WebKit
漏洞?我正在按照提供的方式创建网络视图:
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.allowsInlineMediaPlayback = YES;
config.processPool = // Here I'm using shared process pool
self.webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
self.webView.translatesAutoresizingMaskIntoConstraints = NO;
self.webView.clipsToBounds = YES;
self.webView.allowsBackForwardNavigationGestures = YES;
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.0")) {
self.webView.allowsLinkPreview = YES;
}
[self addSubview:_webView];
为了显示问题,我使用简单的应用程序创建了简单的存储库(https://github.com/apan06/UniversalLinks- 初始化非常简单)。有两个网络视图 -WKWebView
and UIWebView
两者都有简单的 html,只有链接Twitter
. WKWebView
只需加载Twitter
页。另一方面UIWebView
open Twitter
应用程序。只要记住:
- 在设备上测试它Twitter
安装应用程序,如果您没有Twitter app
或者不喜欢 Twitter 您可以更改链接
- 我正在测试它iPhone 6
with iOS 9.2.1
Thanks!
我相信 WKWebView 中存在一个错误,如果未设置导航委托,它会忽略通用链接。尝试设置 WKWebView 的导航委托。您不必实现任何委托方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)