为什么不能在 UIWebView iOS7.1 应用程序中打开 itms-services 协议?

Sim*_*nal 2 objective-c uiwebview ios ios7

我使用以下链接打开一个 UIWebView:

itms-services://?action=download-manifest&url= https://XXX.plist

启用了 SSL (https) 的服务器。如果我在 Safari 中打开页面工作正常,我可以下载并安装更新,但是当我在应用程序中打开相同的链接时,请按链接,然后什么也没有发生。

编辑:

控制台:当 state=1 时开始导航

lup*_*tus 5

应用程序必须自己处理自定义方案。捕获 URLUIWebViewDelegate并通过以下方式打开它 UIApplication(如果它可以处理):

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *url = request.URL;
    if (!([url.scheme isEqualToString:@"http"] || [url.scheme isEqualToString:@"https"] || [url.scheme isEqualToString:@"about"])) {
        UIApplication *app = [UIApplication sharedApplication];
        if ([app canOpenURL:url]) [app openURL:url];
        return NO;
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

  • 要更新应用程序,只需使用 `[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-service://....."]];` 打开这样的链接 - 在企业/临时应用程序用户的情况下询问他是否要安装它(如果只有链接和清单可以),iTunes 链接将打开 AppStore 应用程序。无论如何,在这两种情况下,用户都不允许更新,您也无法阻止它。 (3认同)