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

Android12+设备Capacitor应用Deep Link跳转浏览器而非应用求助

可能原因及对应解决方案

Capacitor 有自身的 Deep Link 配置体系,仅在 AndroidManifest.xml 中添加 Intent Filter 不够,需同步在项目配置文件中声明:

  • 在 capacitor.config.ts(或 capacitor.config.json)中添加 deepLinks 配置:
export default defineConfig({
  // 其他配置项
  deepLinks: {
    android: {
      intentFilter: [
        {
          action: "VIEW",
          categories: ["DEFAULT", "BROWSABLE"],
          data: {
            scheme: "https",
            host: "www.mysite.com"
          },
          autoVerify: true
        }
      ]
    }
  }
});

配置完成后执行 npx cap sync android,确保规则同步到原生项目的 MainActivity 标签下。

2. Android 12+ 包可见性限制

Android 12(API 31)及以上引入包可见性机制,未声明相关权限的应用可能无法接收浏览器发来的 Intent:

  • 在 AndroidManifest.xml 的 <manifest> 标签内添加包可见性声明:
<queries>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https" />
  </intent>
</queries>

若需临时兼容广泛场景,可添加 QUERY_ALL_PACKAGES 权限(不推荐长期使用,建议后续替换为精准声明):

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

3. AutoVerify 验证失败

android:autoVerify="true" 要求域名下的 assetlinks.json 配置正确,且应用签名与文件声明一致:

  • 检查 https://www.mysite.com/.well-known/assetlinks.json 存在性,内容需包含应用包名和签名指纹:
[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "你的应用包名",
      "sha256_cert_fingerprints": ["你的应用签名SHA256指纹"]
    }
  }
]
  • 确认 Capacitor 构建的应用签名与原生示例一致,debug 测试时需将 debug 签名指纹也加入文件。
  • 执行 adb shell pm get-app-links --package 你的应用包名 验证状态,若返回 verified: false,说明验证未通过。

4. Intent Filter 位置错误

确保 Intent Filter 被添加到 MainActivity 的 <activity> 标签内,而非 SplashActivity 等其他组件。Capacitor 项目中 MainActivity 是处理 Deep Link 的核心组件,错误位置会导致 Intent 无法被正确接收。

5. Capacitor 版本兼容性问题

旧版本 Capacitor 对 Android 12+ 的 Deep Link 支持存在缺陷,建议升级到最新稳定版:

npm install @capacitor/core@latest @capacitor/android@latest
npx cap sync android

6. 系统默认应用设置冲突

若之前已将浏览器设为该链接的默认处理应用,需清除默认设置:
进入设备「设置」→「应用」→ 对应浏览器 →「默认应用」→ 清除该链接类型的默认设置后重新测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:20:33