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

问题描述 投票:-2回答:2

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

ios iphone swift deep-linking
2个回答
3
投票

使用URL Scheme

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

要注册URL方案支持的应用程序,您必须在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的方法应用程序(_: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


0
投票

你应该看看Universal Links。以下是一个非常详细解释的答案:How to support Universal Links in iOS App and setup server for it?

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

© www.soinside.com 2019 - 2024. All rights reserved.