如何优化华为App Links:移除“打开”选项或实现直接跳转
问题背景
因Firebase动态链接在华为应用市场无法生效,改用华为App Links生成如下长链接:
https://example.drcn.agconnect.link/?deeplink=https%3A%2F%2Fexample.com%2Freferral%2F3c3432x&android_deeplink=https%3A%2F%2Fexample.com%2Freferral%2F3c3432x&android_open_type=2&android_package_name=com.example.mobile在未安装应用的Google Android设备上点击该链接时,会弹出包含两个选项的界面:
- “打开”:指向不存在的网页链接
https://example.com/referral/3c3432x,无实际作用- “下载”:可正常跳转至Google Play应用页面
需求:要么移除无效的“打开”选项,要么实现类似Firebase的跳转逻辑——应用已安装则直接打开,未安装则自动跳转应用商店。此前尝试添加
landing_page_type=2参数,但未达到预期效果。
解决方案
1. 清理冗余参数,移除无效网页 fallback
当前链接同时配置了deeplink和android_deeplink,其中deeplink是用于网页端的 fallback 链接,而你的这个链接对应的网页并不存在,这正是触发“打开”选项的核心原因。直接删除deeplink参数,只保留Android相关配置:
https://example.drcn.agconnect.link/?android_deeplink=https%3A%2F%2Fexample.com%2Freferral%2F3c3432x&android_open_type=2&android_package_name=com.example.mobile&landing_page_type=1
2. 正确配置landing_page_type参数
华为App Links的landing_page_type参数对应不同跳转逻辑,你之前可能用错了取值:
landing_page_type=1:应用已安装则打开应用,未安装则跳转应用商店(完全匹配你的需求)landing_page_type=2:强制打开应用(未安装时会跳转应用商店,但需确保其他参数配合正确)
确保该参数与android_package_name、android_open_type同时存在,且参数值传递无误。
3. 验证App Links的设备端关联
在Google Android设备上,系统会验证App Links的合法性。如果验证未通过,系统会默认提供网页 fallback 选项:
- 确认你的域名
example.com下的.well-known/assetlinks.json文件已正确配置,包含应用包名com.example.mobile和对应的签名指纹 - 可以通过Android Studio的App Links验证功能检查配置是否有效
4. 通过AG Connect后台生成链接(更可靠)
避免手动拼接参数容易出错的问题,直接在华为AG Connect控制台创建动态链接:
- 选择“应用已安装打开应用,未安装跳转应用商店”的模板
- 配置好Android应用包名、深层链接等信息,后台会自动生成符合逻辑的链接,确保跳转行为完全符合预期
内容的提问来源于stack exchange,提问作者Housefly

