从我的原生应用程序中,我需要打开另一个由Ionic构建的应用程序。
我试过这样,
val intent = packageManager.getLaunchIntentForPackage("com.example.app")
intent.putExtra("uri", "hello 2?")
intent.data = Uri.parse("hello?")
startActivity(intent)
它可以启动应用程序,但它从不调用handleOpenURL()方法。
所以我想尝试使用自定义URL方案而不是包名。
如何使用带URI参数的自定义URL方案打开另一个应用程序?
答案 0 :(得分:4)
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("YOUR_URL"));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
} else {
Toast.makeText(this, R.string.no_activity_found, Toast.LENGTH_LONG).show();
}
答案 1 :(得分:3)
这对我有用。在您的Android清单的启动器活动中,请提及以下行
<intent-filter>
<data android:scheme="http" />
<!-- or you can use deep linking like -->
<data android:scheme="http" android:host="abc.xyz"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
而不是根据您的偏好更改主机名,您也可以使用自己的方案。