如何为 AppLinks/通用链接获取任何应用程序的 URI 方案?

MAR*_*ARS 4 mobile jsx react-native ios-universal-links android-deep-link

我需要从我的本机移动应用程序中打开第三方应用程序。我知道这在 iOS 上称为通用链接,在 Android 上称为 AppLink。

我为此做了很多研究,并且我已经能够在应用商店中设置到第三方应用的链接。现在我只需要让我的应用程序打开应用程序,如果用户安装了它。不过,这需要其他应用程序的 URI 方案。

我的问题是,如何获取此第三方应用程序的 URI 方案?相反,我如何获取任何应用程序的 URI 方案?我知道 twitter 应用程序的 URI 方案是“twitter://app”,但我试图链接到的应用程序比 twitter 或其他流行应用程序更小众,因此在线这类事情没有帮助。

有小费吗?

ter*_*rse 7

查找 iOS 应用程序的 URL 方案

由于 Apple 的保密倾向,要找到 iOS 应用程序的 URL 方案并不容易。但这是可以完成的。这是我使用名为iMazing的 Mac 应用程序的方法

  1. 启动 iMazing,选择已连接的 iOS 设备,单击应用程序

在此处输入图片说明

  1. 在窗口的页脚中,单击管理应用程序

在此处输入图片说明

  1. 选择您感兴趣的应用程序,然后选择“导出 .IPA”菜单项。注意:您可能需要先下载该应用程序。

在此处输入图片说明

  1. 保存的文件将具有.ipa扩展名。将扩展名更改为.zip,然后解压缩文件。您现在有一个名称与应用程序名称匹配的目录。

  2. 假设“ asana ”是应用程序名称,在文本编辑器中打开文件“ asana/Payload/asana.app/Info.plist ”,然后搜索包含“ CFBundleURLSchemes ”的部分。假设应用程序包含CFBundleURLSchemes(它们是可选的),它应该如下所示:

在此处输入图片说明

  1. URL 方案在 中<string>asana</string>,因此在这种情况下完整的 url 方案是“ asana:// ”。通过在 iOS Safari 浏览器窗口中键入 URL 来测试该 URL 是否启动了该应用程序。如果它有效,Safari 应该显示如下警告:

在此处输入图片说明


没有 CFBundleURLSchemes 的应用程序怎么样?

我还没有找到直接在没有CFBundleURLSchemes的情况下启动应用程序的方法,但是您可以链接到 App Store 中的应用程序页面,用户可以在其中使用“打开”按钮(如果未安装应用程序,则使用“获取”按钮)打开应用程序。

您需要从 App Store 获取应用页面的 URL:

  1. 打开App Store,进入应用页面,点击分享图标:

App Store Asana 应用页面

  1. 点击复制链接

应用商店复制链接

该 URL 将如下所示:

https://apps.apple.com/us/app/asana-organize-tasks-work/id489969512
Run Code Online (Sandbox Code Playgroud)

在 Safari 中单击该链接将在 App Store 中打开应用程序页面。