React native 如何获取应用程序链接/通用链接的URI方案?

React native 如何获取应用程序链接/通用链接的URI方案?,react-native,mobile,jsx,ios-universal-links,android-deep-link,React Native,Mobile,Jsx,Ios Universal Links,Android Deep Link,我需要从我的react本机移动应用程序打开第三方应用程序。我知道这在iOS上叫做通用链接,在Android上叫做AppLink 我已经为此做了很多研究,并且我已经能够在应用商店上建立到第三方应用程序的链接。现在我只需要让我的应用程序打开应用程序,如果用户已经安装了它。不过,这需要另一个应用程序的URI方案 我的问题是,我如何获得这个第三方应用程序的URI方案?相反,我如何获得任何应用程序的URI方案?我知道twitter应用程序的URI方案是'twitter://app,但我尝试链接的应用程序比

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

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

我的问题是,我如何获得这个第三方应用程序的URI方案?相反,我如何获得任何应用程序的URI方案?我知道twitter应用程序的URI方案是'twitter://app,但我尝试链接的应用程序比twitter或其他流行应用程序更为利基,因此在线上对这类应用程序没有帮助


有什么建议吗?

也许值得从一些背景开始: 深入链接到应用程序的方式多种多样,具体取决于平台(iOS\Android\WindowsPhone…)及其版本

在iOS上,直到版本9,打开应用程序的方式是使用URI方案,例如您在上面添加的方案:
twitter://app
。每个应用程序都声明了应该使用的方案。因此,为了深入链接到您希望打开的应用程序,您需要使用它声明的方案。在版本6之前,Android也是如此

从iOS9+开始,苹果引入了通用链接作为深度链接的方法。以下是一些信息:

在这些版本中,如果未安装应用程序,则在使用Safari浏览器(iOS默认浏览器)时,URI方案将不再有效。但是,如果安装了应用程序,如果所有配置都成功,URI方案应允许打开应用程序。在Android中,有一种类似的方法叫做“AppLinks”

说到这里,以上信息用于为应用程序设置深度链接。我不认为从你的应用程序打开第三方应用程序是一种常见的用例-深度链接由应用程序所有者配置和使用(例如,发布他/她的应用程序以吸引用户)。

查找iOS应用程序的URL方案 由于苹果倾向于保密,要找到iOS应用程序的URL方案并不容易。但这是可以做到的。下面是我如何做到这一点的,使用一个叫做

  • 启动图像化,选择已连接的iOS设备,单击应用程序:
  • 在窗口的页脚中,单击管理应用程序:
  • 选择您感兴趣的应用程序,然后选择导出.IPA菜单项。注意:您可能需要先下载应用程序
  • 保存的文件将具有.ipa扩展名。将扩展名更改为.zip,然后解压缩文件。现在,您有了一个名称与应用程序名称匹配的目录

  • 假设“asana”是应用程序名,在文本编辑器中打开文件“asana/Payload/asana.app/Info.plist”,然后搜索包含“CbundleurlSchemes”的部分。假设应用程序包含CbundleUrlSchemes(它们是可选的),它应该是这样的:

  • https://apps.apple.com/us/app/asana-organize-tasks-work/id489969512
    

  • URL方案位于
    asana
    中,因此本例中完整的URL方案为“asana://”。通过在iOS Safari浏览器窗口中键入URL,测试URL是否启动应用程序。如果成功,Safari将显示如下警报:

  • 没有CbundleUrlSchemes的应用程序呢? 我还没有找到一种不用CbundleUrlSchemes直接启动应用程序的方法,但是你可以在应用程序商店中链接到该应用程序的页面,用户可以使用打开按钮打开该应用程序(或者获取按钮,如果未安装该应用程序)

    您需要从应用商店获取应用页面的URL:

  • 打开应用商店,转到应用页面,单击共享图标:
  • 单击复制链接:
  • URL将如下所示:

    https://apps.apple.com/us/app/asana-organize-tasks-work/id489969512
    

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

    谢谢您的提示!我改变了我的问题以反映你的建议。所以我实际上是在寻找URI方案,是吗?好吧,这不是一个好的方法,因为第三方应用程序所有者可以随时更改URI方案,或者甚至停止支持URI方案,这反过来会破坏你在应用程序中绑定的任何深层链接(或者要求你发布新版本的应用程序)。我认为最安全的方法是将用户重定向到第三方应用程序网页,而不是从你的应用程序启动他们的应用程序。正如我之前提到的,深度链接是应用程序所有者吸引用户加入其应用程序的一种方法。这是一个巨大的帮助!我将在iOS版本中使用它。iOS和Android的URI方案是否相同?对不起,我没有Android URL方案的经验。但看起来Android应用程序将其方案存储在清单文件中:我刚得到info.plist文件,但文件中的任何地方都不包含CbundleurSchemes。并非所有应用程序都包含“CbundleurSchemes”定义,因为它们不是必需的。大多数比较流行的都有。您正在查看的应用程序是什么?@terrymorde它是Enphase启蒙应用程序。