【问题标题】:How to open other application from my application如何从我的应用程序中打开其他应用程序
【发布时间】:2020-03-10 09:34:09
【问题描述】:

我正在编写代码以从我的 androidios 的 react 本机应用程序启动其他应用程序。

使用Linking 形式反应原生我可以重定向到Play Store/App Store 但是

如果应用已经安装,我该如何启动它?

* 我正在从服务器获取应用程序列表

Linking.openURL('https://play.google.com/store/apps/details?id=com.example.myapp&hl=en')

如果安装了app,我有什么方法可以启动它,否则就平台而言重定向到App store/play store

参考:react-native-app-link

【问题讨论】:

  • 我不明白你想要什么!您想打开已安装在您应用中的其他应用吗?
  • 这取决于您要打开哪个应用程序以及您必须在该应用程序中传递哪些数据。假设您想从您的 RN 应用程序打开地图应用程序。使用自定义纬度和经度值。为此,您可以使用这一个 var 方案 = Platform.OS === 'ios' ? “地图:”:“地理:”; var url = 方案 + ${lat},${lng};链接.openURL(url);从“react-native”导入 {Linking}
  • @AbdulBasit 我只是想启动该应用程序,我有一个名称为Sagar 和包名称为com.sagar 的应用程序,所以我该怎么做
  • Linking.canOpenURL(yourApp ).then(supported => { if (supported) { Linking.openURL(yourApp); } else { alert("sorry invalid url"); }

标签: ios react-native linker deep-linking deeplink


【解决方案1】:

经过多次搜索,我找到了一个不带deep link URLandroid 替代方案,即使用本机模块react-native-intent-launcher 来使用package-name 启动另一个应用程序。

你可以在react-native中调用原生函数startActivityIntent做一些只能用android native code解决的事情。

寻找没有deep link URLiOS 解决方案,如果有任何线索请在此处更新

一旦我发现我会在这里更新

谢谢

【讨论】:

    【解决方案2】:

    您的其他应用需要处理深层链接。如果还没有,请查看here for Androidhere for iOS

    这将允许您拥有自己的应用 URL 方案,例如 testapp://example

    然后您可以简单地使用Linking API,但您可以使用之前定义的 Deeplink URL 方案,而不是打开 HTTP URL。

    Linking.openURL('testapp://example');
    

    【讨论】:

    • 如果只有 app name and package name 使用 react-native,我们可以访问随机应用吗
    • @Sagar,很遗憾你不能。它必须是一个 URL,如您在此处看到的:facebook.github.io/react-native/docs/linking.html#openurl 为您的应用获取 URL 的唯一方法是通过深层链接。
    • 有什么办法可以用 react native 实现
    • 不更新“目标”应用编号。唯一的另一种选择是像您一样打开商店。