如何使用深层链接,我想使用消息应用程序打开我的应用程序?

时间:2018-09-07 10:25:12

标签: ios iphone swift deep-linking

我想使用消息应用程序打开我的应用程序,如果用户按下链接,用户将收到带有链接的消息。其链接需要打开应用程序。

2 个答案:

答案 0 :(得分:3)

使用 URL方案

URL Scheme使您可以定义自定义协议,以使其他应用程序与您的应用程序进行通信。要让其他应用程序与您的应用程序通信,您必须创建格式正确的URL并在您的应用程序中添加支持。要实施URL方案,您必须告诉系统在您的应用程序中打开它并处理应用程序中的传入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

要注册您的应用以获得URL计划支持,您必须在 Info.plist 文件中包含 CFBundleURLTypes 键。该键将包含带有以下键的字典数组:

  1. CFBundleURLName :它是一个包含URL方案抽象名称的字符串。
  2. CFBundleURLSchemes :这是一个包含URL方案名称的数组。

    <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才能打开相应的内容。在对自定义网址的任何请求中,都会调用AppDelegate的方法application(_:open:options :),因此您必须在AppDelegate中实现此方法。请参考以下代码段

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
  print(url)
  // Take decision according to URL
  return true
}

如果您的应用程序未运行(已杀死),它将首先启动您的应用程序,然后调用open url方法。

enter link for more descriptionAbout Deep linking and universal linking

答案 1 :(得分:0)

您应该查看通用链接。这是答案,其中包含非常详细的说明:How to support Universal Links in iOS App and setup server for it?

另一个建议。如果您没有自己的后端,则可以使用Firebase动态链接来拥有自己的“链接”,该链接将直接指向您的应用。