使用网址方案
URL Scheme 让您定义一个自定义协议,让其他应用程序与您的应用程序通信。要让其他应用程序与您的应用程序通信,您必须创建一个适当格式的 URL 并在您的应用程序中添加支持。要实现 URL Scheme,您必须告诉系统在您的应用程序中打开它并在您的应用程序中处理传入的 URL。此 URL 方案看起来像其他 URL 方案,如 http://、ftp://、mailto://、tel:// 等。您可以创建自定义 URL 协议,如 yourapp://open-home-page。任何应用程序都可以通过调用 openURL 使用此方案打开您的应用程序。例如,如果您的自定义 URL 是 yourapp:// 那么以下代码将打开您的应用程序:
let appUrl = URL(string: "youapp://page-to-open")
UIApplication.shared.openURL(appUrl!)
注册您的自定义网址
要注册您的应用程序以获得 URL Scheme 支持,您必须在 Info.plist 文件中包含 CFBundleURLTypes 键。该键将包含具有以下键的字典数组:
-
CFBundleURLName:它是一个包含 URL Scheme 抽象名称的字符串。
-
CFBundleURLSchemes:它是一个包含 URL Scheme 名称的数组。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.yourapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>yourapp</string>
</array>
</dict>
</array>
处理 URL 请求
当任何应用程序请求您的自定义 URL 时,您的应用程序必须处理该 URL 以打开相应的内容。对您的自定义 URL 的任何请求都会调用 AppDelegate 的方法 application(_:open:options:),因此您必须在 AppDelegate 中实现此方法。参考以下代码sn-p
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
print(url)
// Take decision according to URL
return true
}
如果你的应用没有运行(Killed),那么它会先启动你的应用,然后调用 open url 方法。
More Description about Deep linking and Universal linking