canOpenURL возвращает true, и приложение установлено, но приложение не открывается
Когда я использую canOpenURL
открыть универсальную ссылку, (целевое приложение установлено)
canOpenURL
вернуть истину, но приложение не открывается (LSApplicationQueriesSchemes
не зарегистрированы)
но если я использую open(_ url, options)
приложение открывается
Если я несу ответственность за отказ от регистрации LSApplicationQueriesSchemes
, как мне зарегистрировать ссылки Universal на LSApplicationQueriesSchemes
? ( https://www.aaa.com/)
<key>LSApplicationQueriesSchemes</key>
<array>
<string>https://www.aaa.com</string>
</array>
нравится?
1 ответ
Если вы пытаетесь открыть приложение AAA, есть другой способ запустить его изнутри вашего приложения. Вам нужно будет схватитьCFBundleURLSchemes
которое использует целевое приложение.
Для AAA это "aaamobile". Для AAA Auto Club это "aaamobileace"
Затем вам нужно добавить схемы URL-адресов в свой список:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>aaamobile</string>
</array>
А затем в своем коде вы можете проверить, установлено ли приложение, и запустить приложение или перенаправить пользователя на веб-сайт:
guard let url = URL(string: "aaamobile://") else { return }
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.open(URL(string: "https://www.aaa.com")!, options: [:], completionHandler: nil)
}