如何使用React Native在Android上启动应用程序?

xytpbqjk  于 2023-06-30  发布在  React
关注(0)|答案(1)|浏览(133)
    • bounty将在5天内到期**。此问题的答案有资格获得+50声望奖励。UCYT5040正在寻找一个答案从一个有信誉的来源

首先,我想澄清一下,我不相信这是android: React native open an app from another app?的副本。下面我举几个例子来说明为什么不。
我正在为一个应用程序编写一个插件,它将代码注入到另一个React Native应用程序中。我可以运行任何JavaScript代码,但不能修改Java或使用这样做的包,因为应用程序已经编译。
该插件的目标是在用户执行某些操作时启动另一个应用程序。我计划在支持它们的应用程序中使用Schema URL,但我也想打开不支持它们的应用程序。
Android支持是我目前所需要的,但我可能会在未来以其他方式添加iOS支持。
我认为Linking.sendIntent函数是我所需要的。问题是我没有找到关于如何用这个启动应用程序的文档。此外,我可以使用应用程序名称,软件包名称,实际上任何东西。
我确实试着向一些AI助手寻求帮助,他们建议在intent://模式下使用Linking.openUrl,但这根本不起作用。

vkc1a9a2

vkc1a9a21#

Intent是一个全球范围内发送的请愿书,发送给任何和所有能够处理它的应用程序。这相当于大声呼救。如果你想得到某个人的帮助,你需要喊出他们的名字。同样,如果你想打开一个特定的应用程序,你需要知道应用程序将响应的意图。例如,如果您想打开WhatsApp:

var url = "https://api.whatsapp.com/send?phone="+number
var intent = Intent(Intent.ACTION_VIEW)
i.setData(Uri.parse(url));
startActivity(i);

或者:

await sendIntent('ACTION_VIEW',
  ['https://api.whatsapp.com/send?phone='+number],
)

每个应用都有一个启动意图。您需要检查并存储它们,以便可以直接调用它们。或者,您可以尝试使用packageManager获取有关已安装应用的数据,但最近的SDK禁止您获取有关其他应用的信息,因此可能无法正常工作。

相关问题