我正在尝试在我的应用程序中实现深度链接,我在我的主要活动的 onResume 方法中添加了 getIntent 并且我能够从链接打开我的主要活动,但我面临以下问题。
如果我第一次通过单击应用程序图标打开应用程序,那么意图操作将是 Intent.ACTION_MAIN,这对于所有后续尝试都是恒定的,即当我通过链接打开应用程序时,intent.action应该是 Intent.ACTION_VIEW,但动作总是 ACTION_MAIN。
如果应用程序是通过 chrome 的链接打开的,那么我可以看到我的应用程序的两个实例,即 chrome 和我的应用程序本身。
<activity android:name=".MainActivity" android:hardwareAccelerated="false" android:launchMode="singleTop"> // I used singleTop because i have implementd isTaskRoot in my main activity <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="clip.myapp.tp" android:pathPattern="/.*" android:scheme="mhhds" /> </intent-filter> </activity>
下面是我实现 getIntent 的 mainactivity.java 文件的 onResume
@Override
protected void onResume() {
super.onResume();
mIntent = getIntent();
String appLinkAction = mIntent.getAction();
if(mIntent.getAction().equals(Intent.ACTION_VIEW)) {
Uri data = mIntent.getData();
String mIntentData = data.toString();
System.out.println("Intentdata:" + mIntentData);
}
}