You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Deeplink问题:Chrome链接不跳转与多Scheme共存失效

Deeplink问题解答

问题1:Chrome地址栏输入HTTPS链接无法唤起应用,短信点击可正常唤起

这是Chrome的默认行为差异导致:

  • 在Chrome地址栏直接输入链接时,浏览器会优先以网页形式打开,除非该域名完成了Android App Links验证(域名根目录放置/.well-known/assetlinks.json,且应用签名与文件配置匹配),此时Chrome会直接唤起应用。
  • 从短信等第三方应用点击链接时,系统会触发标准Intent解析流程,弹出应用选择对话框。

解决方式:

  • 配置Android App Links:在域名根目录放置验证文件,完成应用与域名的绑定,让Chrome直接唤起应用。
  • 在网页中添加“打开应用”按钮,通过JS触发自定义Scheme跳转(如window.location.href = 'myapp://open')。
  • 检查Chrome设置:确保允许该网站唤起应用(路径:设置→隐私和安全→网站设置→打开应用)。

问题2:自定义Scheme无法唤起,删除HTTPS的data配置后恢复正常,能否在一个Activity配置多个Scheme

可以在同一个Activity中配置多个Scheme,但你的配置逻辑有误:
Android的<intent-filter>中,多个<data>标签的属性是共享累积的,而非独立的“或”关系。你当前的配置里,第二个<data android:scheme="myapp" />会继承第一个<data>的host和pathPrefix属性,相当于要求Intent必须是myapp://www.example.com/test/...,而你测试的myapp://open不满足这个条件,所以无法匹配。

正确配置方式是将两个Scheme的规则放在**独立的<intent-filter>**中:

<!-- 处理HTTPS链接的过滤器 -->
<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="www.example.com" android:pathPrefix="/test/" android:scheme="https" />
</intent-filter>

<!-- 处理自定义Scheme的过滤器 -->
<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="myapp" />
</intent-filter>

两个过滤器独立工作,分别匹配HTTPS链接和自定义Scheme链接,互不影响。


内容的提问来源于stack exchange,提问作者LMaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:55:18