【发布时间】:2015-03-15 03:17:01
【问题描述】:
我正在开发浏览器。我需要在同一个 WKWebView 实例中打开新的浏览器窗口,但我还需要能够在 Appstore 应用程序中打开链接。
- (void)webView:(WKWebView *)webView
decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction
decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
if (navigationAction.targetFrame == nil) {
NSURL *url = navigationAction.request.URL;
UIApplication *app = [UIApplication sharedApplication];
if ([app canOpenURL:url]) {
[app openURL:url];
}
}
decisionHandler(WKNavigationActionPolicyAllow);
}
#pragma mark - WKUIDelegate
- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration
forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures {
if (!navigationAction.targetFrame.isMainFrame) {
[webView loadRequest:navigationAction.request];
}
return nil;
}
问题在于它会在 Safari 应用程序中打开所有新窗口。 我如何知道 UIApplication 是否会在 Safari 应用程序中打开链接?
【问题讨论】:
-
看方案。
http和httpsURL 将在 Safari 中打开。mailto打开邮件应用等 -
@rmaddy 但应用商店链接具有 http 方案,应在应用商店应用程序中打开
-
App Store 链接以
itms:开头。 -
@maddy,是的,你是对的
标签: ios iphone safari mobile-safari wkwebview