我公司有基于web-view的应用程序和其他本地应用程序。我们使用universal links在需要时将用户重定向到其他应用程序(其他应用程序仍然支持universal links --我可以通过按下Apple Notes app的链接来运行它们)。我们最近向WKWebView (从UIWebView)过渡,这提供了一种更好的体验。但是在更新之后,Universal Links停止工作,当用户按下应用程序内的链接时,我们无法启动其他应用程序。
根据医生的说法:
“通用链接允许iOS 9用户在WKWebView、UIWebView视图和Safari页面中打开您的应用程序,此外还有导致调用openURL:的链接,例如邮件、消息和其他应用程序中的链接。”
WKWebView似乎没有处理Universal Links。我的问题是,我是遗漏了WKWebView的一些特殊配置,还是这是WebKit bug?我正在按规定创建web视图:
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 -使用非常简单的初始化)创建了简单的存储库。有两个web视图- WKWebView和UIWebView,它们都带有简单的html,只有到Twitter的链接。WKWebView只是加载Twitter页面。另一方面,UIWebView打开Twitter应用程序。只需回忆:-在安装了Twitter应用程序的设备上测试它,如果您没有Twitter app或者不喜欢Twitter,您可以更改链接--我正在用iOS 9.2.1在iPhone 6上测试它
谢谢!
发布于 2016-02-03 16:20:01
我相信WKWebView中存在一个错误,如果导航委托没有设置,它就会忽略通用链接。尝试设置WKWebView的导航委托。您不必实现任何委托方法。
https://stackoverflow.com/questions/35172678
复制相似问题