Как я могу узнать, будет ли открываться внешнее приложение при загрузке ссылки в WKWebView?

У меня есть WKWebView, веб-просмотр загрузит ссылку вроде https://qr.payme.hsbc.com/2/XXXXYYYZZZ.

И есть два возможных результата при загрузке ссылки:
случай 1 - приложение под названием Payme будет открыто, когда пользователь установит приложение Payme;
случай 2 - веб-просмотр будет перенаправлен на статическую страницу https://payme.hsbc.com/, если пользователь не установил приложение Payme.

У меня вопрос: как узнать, открыто ли приложение Payme?

1 ответ

Решение

Вы могли бы использовать deep linking или яблоко рекомендуется universal linkingчтобы проверить, установлено ли приложение на устройстве. С участиемdeep linkingвам нужно получить схему приложения, которое оно уже добавило. И вы можете проверить, можно ли открыть схему так же, как и для любого другого типа URL. Вот пример:

let appSchemeString = "com.myAppScheme://"
let url = URL(string: appSchemeString)!
if UIApplication.shared.canOpenURL(url) {
    print("App is present")
} else {
    print("App is not")
}

Вам нужно обновить свой info.plistфайл, чтобы включить схемы, которые вы будете открывать в приложении. Вы должны добавить это:

<key>LSApplicationQueriesSchemes</key> 
<array>
<string>com.myAppScheme</string> 
</array>

Вот ссылка на видео на YouTube. Также касса универсально-перелинковки.

Другие вопросы по тегам