华为设备如何实现Deep Link深度链接正常唤起功能?
华为设备Deep Link正常唤起的解决方案
你当前使用的是普通HTTP协议深度链接配置,华为搭载HMS服务/鸿蒙系统的设备默认不会主动枚举可处理HTTP链接的应用,所以会直接跳转浏览器,可通过以下几种方案适配:
方案1:配置通用App Link验证(全安卓设备兼容)
这是谷歌原生规范,鸿蒙系统也兼容,配置后不需要用户手动选择,可直接唤起应用:
- 在现有intent-filter标签上添加
android:autoVerify="true"属性,修改后配置如下:
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://www.example.com/gizmos” --> <data android:scheme="http" android:host="www.example.com" /> <!-- 可额外添加https配置适配加密站点 --> <data android:scheme="https" android:host="www.example.com" /> </intent-filter>
- 在你的站点
www.example.com根目录下创建.well-known/assetlinks.json文件,文件内容填写你应用的包名、SHA256签名指纹,配置完成后华为系统会自动验证该文件的合法性,验证通过即可支持HTTP/HTTPS链接直接唤起应用。
方案2:适配华为App Linking服务(华为设备专属优化)
针对华为设备做专属适配,还可支持未安装应用时引导跳转应用市场下载:
- 在华为开发者后台创建应用并开通App Linking服务,绑定你的域名
www.example.com,填写应用包名和签名信息。 - 项目中接入HMS Core App Linking SDK,完成初始化配置即可,配置后的链接在华为设备上可直接唤起应用,不会被浏览器拦截。
方案3:添加自定义Scheme兜底
如果不想做复杂的验证配置,可以添加自定义scheme作为兜底唤起方式:
- 在现有intent-filter中新增自定义scheme的data配置:
<data android:scheme="myapp" android:host="open" />
- 前端页面可先尝试发起HTTP链接唤起,若唤起失败自动降级为调用
myapp://open格式的自定义scheme链接唤起应用。
注意事项
- 所有配置中用到的应用签名指纹必须和你应用正式打包的签名完全一致,签名不匹配会导致验证失败无法正常唤起。
- 部分用户手动关闭了华为浏览器的「允许唤起外部应用」权限时,需要引导用户开启该权限才可正常唤起。
内容的提问来源于stack exchange,提问作者Денис
相关产品推荐
相关产品推荐

