【问题标题】:How to use deep link I want to open my app with using message app?如何使用深层链接我想使用消息应用程序打开我的应用程序?
【发布时间】:2019-02-12 16:32:01
【问题描述】:

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

【问题讨论】:

标签: ios iphone swift deep-linking


【解决方案1】:

使用网址方案

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 键。该键将包含具有以下键的字典数组:

  1. CFBundleURLName:它是一个包含 URL Scheme 抽象名称的字符串。

  2. 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

【讨论】:

    【解决方案2】:

    您应该查看通用链接。这是一个非常详细解释的答案:How to support Universal Links in iOS App and setup server for it?

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

    【讨论】:

    • 这应该是评论而不是答案
    猜你喜欢
    • 1970-01-01
    • 2019-05-19
    • 2021-01-26
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多