菜单

设置深度链接

开发者可以通过创建深度链接来将用户转到应用中的特定页面。如果用户已在设备上安装您的应用,SE SDK 会转向链接中指定的页面。用户通过链接打开应用后,SDK 就可以读取深度链接数据了,具体步骤如下:

有两种方式实现深度链接

方式一: Deep linking

配置module.json5文件

如果用户已经安装了您的应用,那么在与包含深度链接信息的链接互动时,应用就会打开。SE SDK 能够解析深度链接信息,在应用中使用。要设置深度链接,请选择一个唯一的 Scheme 名称 。

开发者可以进行设置,在用户与深度链接互动时启动特定活动。为此请进行下列操作:

  1. 在您的 module.json5 文件中配置 actions
  2. 在您的 module.json5 文件中配置 Scheme
  3. 在您的 module.json5 文件中配置 host

以下示例展示了如何在module.json5文件中配置scheme,并以 scheme 名称 sedemo 将其打开。

{
  "module": {
    // ...
    "abilities": [
      {
        // ...
        "skills": [
          {
            "actions": [
              // actions不能为空,actions为空会造成目标方匹配失败
              "ohos.want.action.viewData"
            ],
            "uris": [
              {
                // scheme必选,可以自定义,以link为例,需要替换为实际的scheme
                "scheme": "link",
                // host必选,配置待匹配的域名
                "host": "www.example.com"
              }
            ]
          }
        ]
      }
    ]
  }
}

更详细配置步骤,请参考鸿蒙官方文档

 

方式二: App Linking

配置module.json5文件,更详细配置步骤,请参考鸿蒙官方文档

{
  "module": {
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        //请将exported配置为true;如果exported为false,仅具有权限的系统应用能够拉起该应用,否则无法拉起应用
        "exported": true,
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "skills": [
          {
            "entities": [
              // entities必须包含"entity.system.browsable"
              "entity.system.browsable",
             // 此配置项为样例,请根据实际情况修改
              "entity.system.home"
            ],
            "actions": [
              // actions必须包含"ohos.want.action.viewData"
              "ohos.want.action.viewData",
             // 此配置项为样例,请根据实际情况修改
              "action.system.home"
            ],
            "uris": [
              {
                // scheme须配置为https
                "scheme": "https",
                // host须配置为关联的域名
                "host": "子域.link.solar-engine.com"//填写热力引擎后台deeplink设置中的子域,同时该域名:(子域.link.solar-engine.com)也需要在鸿蒙后台创建。具体请参考鸿蒙官方文档https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-linking-startup-V5
              }
            ],
            // domainVerify须设置为true
           "domainVerify": true
          }
        ]
      }
    ]
  }
}

 

要对用户进行再归因,请在 APP 收到深度链接内容时调用 SESDK 的 appDeeplinkOpenURI 方法,SESDK 就会在深度链接中寻找新的归因信息。如果 SESDK 找到新信息,会将其转发至服务器进行再归因。
 
方法示例:
public static appDeeplinkOpenURI(uri: string)

 

调用示例:

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { url } from '@kit.ArkTS';

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    // 如传入的url为:link://www.example.com/programs?action=showall
    let uri = want?.uri;
    if (uri) {
      //创建deeplink 链接监听
      const deepLinkListener: DeepLinkListener = {
        onReceived(code: number, deeplinkInfo?: DeeplinkInfo) {
          if (code===0) {
            //处理deeplink回调成功逻辑
          }
        }
      };
      //设置 deeplink 链接监听
      SolarEngineManager.setDeepLinkListener(deepLinkListener);
      SolarEngineManager.appDeeplinkOpenURI(uri);
    }
  }
}

注:setDeepLinkListener需要在appDeeplinkOpenURI方法前调用,否则无法触发DeepLinkListener回调

 

DeeplinkInfo类参数说明:
参数名称 参数含义 参数类型
sedpLink 跳转参数 string
turlId 7位短链 string
from 链接类型 string
customParams 自定义参数 Record<string,Object> | undefined
 

code含义说明:

错误码 code码释义
0 成功
1 URI 为空
2 URI 非法

 

主动上报唤醒事件

开发者可以通过上报唤醒事件来进行拉活归因和业务分析。

注:如果使用了SDK的deeplink功能,调用了appDeeplinkOpenURL方法,则无需再手动调用trackAppReEngagement方法

方法示例:
public static trackAppReEngagement(seAppReEngagementModel: SEAppReEngagementModel)

 

调用示例:

import { SolarEngineManager } from '@solarengine/core'

SolarEngineManager.trackAppReEngagement(new SEAppReEngagementModel());
 
最近修改: 2025-03-12Powered by