在 WKWebView 中加载 link 时,我如何知道外部应用程序是否会打开?
How can I know if external app will be open or not when a link is loaded in WKWebView?
我有一个 WKWebView,webview 会加载一个 link,比如 https://qr.payme.hsbc.com/2/XXXXYYYZZZ。
加载 link 时有两种可能的结果,
情况1是一个名为Payme的应用程序将在用户安装Payme应用程序时打开;
情况 2 是当用户没有安装 Payme 应用程序时,webview 将被重定向到一个静态页面 https://payme.hsbc.com/。
我的问题是如何知道Payme应用程序是否已打开?
您可以使用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 视频 link。
另外,结账 universal-linking.
我有一个 WKWebView,webview 会加载一个 link,比如 https://qr.payme.hsbc.com/2/XXXXYYYZZZ。
加载 link 时有两种可能的结果,
情况1是一个名为Payme的应用程序将在用户安装Payme应用程序时打开;
情况 2 是当用户没有安装 Payme 应用程序时,webview 将被重定向到一个静态页面 https://payme.hsbc.com/。
我的问题是如何知道Payme应用程序是否已打开?
您可以使用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 视频 link。 另外,结账 universal-linking.