У меня проблемы с WKWebView
и itms-services protocol
.
Мое приложение состоит из одного веб-просмотра, в котором я правильно загружаю веб-страницу.Внутри этой веб-страницы в определенное время я бы загружал ссылку 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)
}
}
}
URL-адрес itms-службы соответствует следующему шаблону:
itms-services: //? Action= download-manifest & url = https://www.temporary.it/temporary.plist
Где я не прав?Это правильный путь?