WKWebView
和itms-services protocol
我遇到了一些麻烦。
我的应用程序由单个webview组成,我正确加载了一个网页。在此网页中,我会在某个时间加载itms-services
链接,以安装应用。
如果我使用Safari就可以了:当我点击链接时,Safari会向我显示警告,询问安装是否正常。
但在WKWebView
内,此警告不会显示给我。
我尝试实施webView(_:decidePolicyFor:decisionHandler:)
方法,但没有成功。
这是我的代码。
private func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
let requestURL: URL? = navigationAction.request.url
let app = UIApplication.shared
if let anURL = requestURL {
if (requestURL?.scheme?.lowercased() == "itms-services") && app.canOpenURL(anURL) {
if let anURL = requestURL {
app.openURL(anURL)
decisionHandler(.cancel)
}
} else {
decisionHandler(.allow)
}
}
}
itms-service URL 遵循以下模式:
ITMS服务://动作=下载舱单&安培; URL = https://www.temporary.it/temporary.plist
哪里错了?这是正确的方法吗?