我web-view
在公司有基础应用程序和其他本地应用程序。我们曾经universal links
在需要时将用户重定向到其他应用程序(其他应用程序仍然支持universal links
- 我可以通过按链接来运行它们Apple Notes app
)。我们最近过渡到WKWebView
(from UIWebView
),这提供了更好的体验。但是在更新Universal Links
停止工作后,当用户在我们的应用程序中按下链接时,我们无法启动其他应用程序。
根据文档:
“通用链接允许 iOS 9 用户在 WKWebView 和 UIWebView 视图和 Safari 页面中点击指向您网站的链接时打开您的应用程序,以及导致调用 openURL: 的链接,例如邮件、消息和其他应用。”
似乎WKWebView
没有处理Universal Links
. 我的问题是,我是否缺少一些特殊配置WKWebView
或者这是WebKit
错误?我正在按照提供的方式创建 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,你可以更改链接 - 我正在测试iPhone 6
它iOS 9.2.1
谢谢!