【发布时间】:2021-02-25 00:04:12
【问题描述】:
我在安装免安装应用和已安装应用(版本)时遇到了深层链接问题。我的设置如下:
- 基础应用 (com.android.application)
- 已安装的应用程序(com.android.dynamic-feature with dist:instant="false", dist:onDemand="false")
Manifest.xml:
<application>
<activity
android:name=".Activity1">
<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:scheme="https"
android:host="example.com"
android:pathPattern="/deeplink/*" />
</intent-filter>
...
- Instant App(com.android.dynamic-feature with dist:instant="true", dist:onDemand="false")
Manifest.xml:
<application>
<activity
android:name=".Activity2">
<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:scheme="https"
android:host="example.com"
android:pathPattern="/deeplink/*" />
</intent-filter>
...
(请注意,已安装应用的清单定义了 Activity1,而免安装应用的清单定义了 Activity2)
问题是,当我打开带有深层链接的已安装应用时,它会打开 Activity2(免安装应用的 Activity)而不是已安装应用的 Activity。
我了解 gradle 对动态功能模块和将所有 3 个清单合并在一起的基本应用(基本应用、已安装应用、即时应用)进行清单合并。但我认为如果设备上存在已安装应用的 Activity 来启动应用,Android 会足够智能。
所以我的问题是:如何在已安装的应用和免安装应用中同时支持相同的深层链接?也就是说:如果没有安装应用,使用免安装应用的Activity(Activity2)打开深层链接,如果安装了应用,使用已安装应用的Activity(Activity1)打开深层链接?
感谢您的帮助!
【问题讨论】:
标签: android android-instant-apps android-app-bundle android-deep-link