Я хочу открыть URL с помощью Google Chrome. Это прекрасно работает, если я заменил префикс url на «googlechrome: //» (ergo google chrome открывает URL).
Однако я также хочу проверить, установлен ли Chrome, для которого я использую метод 'canOpenUrl', для которого я снова понимаю, что мне нужно убедиться, что у меня добавлены соответствующие схемы URL. Пока все хорошо, я добавил «googlechrome» и «googlechromes» в мои схемы URL-адресов в своем списке, и метод «canOpenUrl» возвращает значение true. Однако ничего не происходит, Google Chrome просто не открывается. Что-нибудь очевидное, что мне не хватает?
Этот код работает просто отлично, Google Chrome открывается так долго, что у меня нет ни одной схемы URL в моем списке:
if let googleUrl = URL(string: "googlechrome" + "\(urlString.replaceStringPrefix())") {
print("openUrl, googleUrl: ", googleUrl)
UIApplication.shared.open(googleUrl, options: [:])
}
Это ниже возвращает true для canOpenUrl с соответствующей записью plist, но ничего не происходит, Google Chrome не открывается:
<key>CFBundleURLSchemes</key>
<array>
<string>googlechrome</string>
<string>googlechromes</string>
<string>googlechrome-x-callback</string>
</array>
if let googleUrl = URL(string: "googlechrome" + "\(urlString.replaceStringPrefix())") {
print("openUrl, googleUrl: ", googleUrl)
if UIApplication.shared.canOpenURL(googleUrl) {
print("Can open url with Chrome, url: ", googleUrl)
UIApplication.shared.open(googleUrl, options: [:])
} else {
print("Cannot open url with Chrome, falling back to Safari")
if let safariUrl = URL(string: urlString) {
UIApplication.shared.open(safariUrl, options: [:])
}
}
}