我在公司有基于web-view
的应用和其他原生应用。我们在需要时使用universal links
将用户重定向到其他应用(其他应用仍然支持universal links
- 我可以通过按Apple Notes app
中的链接来运行它们。
我们最近转换为WKWebView
(来自UIWebView
),这提供了更好的体验方式。但是在更新Universal Links
停止工作后,当用户在我们的应用内按链接时,我们无法启动其他应用。
根据文件:
"通用链接可让iOS 9用户在点按链接时打开您的应用 您的网站在WKWebView和UIWebView视图和Safari页面中 除了导致调用openURL的链接外,例如那些 发生在邮件,消息和其他应用程序中。"
似乎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
和UIWebView
,两者都有简单的html,只有Twitter
的链接。 WKWebView
只需加载Twitter
页面。另一方面,UIWebView
打开Twitter
应用。记住:
- 在已安装Twitter
应用的设备上对其进行测试,如果您没有Twitter app
或不喜欢Twitter,则可以更改链接
- 我正在使用iPhone 6
iOS 9.2.1
上对其进行测试
谢谢!
答案 0 :(得分:0)
我相信WKWebView中存在一个错误,如果没有设置导航委托,它会忽略通用链接。尝试设置WKWebView的导航委托。您不必实现任何委托方法。