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

Ionic5使用ionic-plugin-deeplinks时HTTPS深度链接无法打开应用求助

解决方案

HTTPS 协议的深链接无法直接拉起应用,核心原因是Android系统要求的App Links、iOS系统要求的Universal Links需要额外的服务端+端上配置,仅配置插件参数无法生效,可按以下步骤操作:

1. 升级基础依赖

你当前使用的 ionic-plugin-deeplinks@1.0.24 对Android 12+、iOS 15+以上系统兼容性存在缺陷,建议先升级到1.0.25及以上版本:

ionic cordova plugin rm ionic-plugin-deeplinks
ionic cordova plugin add ionic-plugin-deeplinks@latest --variable URL_SCHEME=myScheme --variable DEEPLINK_SCHEME=https --variable DEEPLINK_HOST=myurl.com

同时确保安装对应版本的@ionic-native/deeplinks依赖:

npm install @ionic-native/deeplinks@5

2. Android端配置

2.1 注入Intent Filter

在config.xml的<platform name="android">节点下添加如下配置,自动向AndroidManifest注入深链接匹配规则:

<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/activity[@android:name='MainActivity']">
    <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" />
        <data android:scheme="https" android:host="myurl.com" android:pathPrefix="/user/activate" />
    </intent-filter>
</edit-config>

如果需要匹配更多路径,可新增多个<data>节点配置不同的pathPrefix。

2.2 服务端放置验证文件

在你的域名https://myurl.com的.well-known目录下,放置名为assetlinks.json的验证文件,内容示例:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "你的应用包名",
    "sha256_cert_fingerprints": ["你的应用签名SHA256指纹"]
  }
}]

要求:

  • 文件可公开访问,无访问限制、无30x跳转
  • HTTP响应头的Content-Type设置为application/json
  • 测试阶段可同时添加debug签名和release签名的SHA256指纹,避免测试失败

3. iOS端配置

3.1 开启关联域名能力

  1. 登录苹果开发者后台,在对应App ID的配置中开启Associated Domains能力
  2. 在Xcode项目的Signing & Capabilities中添加Associated Domains项,值为applinks:myurl.com

3.2 服务端放置验证文件

在你的域名https://myurl.com的.well-known目录下,放置名为apple-app-site-association的验证文件(不要添加.json后缀),内容示例:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "你的苹果团队ID.你的应用Bundle ID",
        "paths": ["/user/activate/*"]
      }
    ]
  }
}

要求同Android的验证文件,可公开访问、Content-Type为application/json、无跳转。

4. 路由匹配验证

在应用入口组件(通常是app.component.ts)中添加路由监听逻辑,示例:

import { Deeplinks } from '@ionic-native/deeplinks/ngx';
import { ActivatePage } from './pages/activate/activate.page';

constructor(private deeplinks: Deeplinks) {
  this.deeplinks.route({
    '/user/activate': ActivatePage
  }).subscribe(match => {
    // 获取链接参数,处理激活逻辑
    const linkGuid = match.$args.link;
    console.log('收到激活参数', linkGuid);
  }, err => {
    console.log('未匹配到深链接', err);
  });
}

5. 测试方法

  • Android测试:执行命令adb shell am start -W -a android.intent.action.VIEW -d "https://myurl.com/user/activate?link=test123" 你的应用包名,验证是否直接拉起应用
  • iOS测试:将测试链接发送到iOS设备的备忘录中,点击链接验证是否直接跳转应用,不要直接在Safari地址栏输入链接测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:36:05