如何从我的android React本机应用程序打开另一个应用程序?

如何从我的android React本机应用程序打开另一个应用程序?,android,react-native,react-native-android,Android,React Native,React Native Android,我想从我的React原生应用程序中打开几个其他应用程序。当我知道facebook、google maps、tel、skype等应用程序的URL时,链接()非常适用于这些应用程序。,但我想运行的是默认电子书阅读器、youtube、IPLA以及平板电脑上预装的一系列游戏,哪些URL/包名我不知道 我的团队前成员一年前使用cordova创建了其他应用程序,他使用以下工具: 问题: -是否有像上面lampaa startapp这样的工具,但对于React Native,我可以使用包名而不是url运行应用

我想从我的React原生应用程序中打开几个其他应用程序。
当我知道facebook、google maps、tel、skype等应用程序的URL时,链接()非常适用于这些应用程序。,但我想运行的是默认电子书阅读器、youtube、IPLA以及平板电脑上预装的一系列游戏,哪些URL/包名我不知道

我的团队前成员一年前使用cordova创建了其他应用程序,他使用以下工具:

问题
-是否有像上面lampaa startapp这样的工具,但对于React Native,我可以使用包名而不是url运行应用程序?
-我如何检查已安装应用程序的意向url(如facebook的“fb:”、g.maps的“geo:”)和软件包名称(如com.google.android.apps.maps?
-如何运行已安装的游戏和电子书阅读器,当我已经有他们的包名,但没有url


仅限Android,不关心iOS。

我不知道是否有可能获得其他已安装应用程序的
深度链接方案(如
fb:
geo:

PackageManager pm = getPackageManager();

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> appList = pm.queryIntentActivities(mainIntent, 0);
    Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));

for (ResolveInfo rInfo : appList) {
    Log.d("Launcher", "package:" + rInfo.activityInfo.packageName +
                      "; activity: " + rInfo.activityInfo.name);
}
但您可以获得其他已安装应用程序的
启动程序活动

PackageManager pm = getPackageManager();

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> appList = pm.queryIntentActivities(mainIntent, 0);
    Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));

for (ResolveInfo rInfo : appList) {
    Log.d("Launcher", "package:" + rInfo.activityInfo.packageName +
                      "; activity: " + rInfo.activityInfo.name);
}

好的,但这看起来像是本地Java代码,而不是JavaScript,我不知道该怎么办:/我需要了解java才能用react-native制作应用程序吗?你找到解决方案了吗?@vinayr据我所知,不编写自己的java组件的唯一方法就是用这个工具制作react-native-cordova桥:只使用cordova插件。不幸的是,这对我不起作用,应用程序构建良好,但启动后立即崩溃。祝你好运,如果你成功,请回复:。