基本信息
SDK名称:热力引擎 Harmony SDK v1.2.0
开发者名称:汇量云(北京)科技有限公司
SDK版本号:1.2.0
主要功能:热力引擎是一站式增长分析与发行决策平台,致力于帮助开发者搭建便捷、高效的数据管理中台,洞察业务运营全链路数据,制定更优增长决策。热力引擎支持全球全渠道数据管理,帮助开发者实现归因分析、用户粒度 ROI 分析,能有效衡量渠道价值,为投放和变现策略调优提供全方位数据支持。同时,提供应用内埋点及参数管理,配合多种分析模型与 AB 测试功能,全面还原用户全生命周期旅程,挖掘用户需求及业务增长点,快速验证并推行产品迭代优化,为开发者提升业务运营效率,实现规模化增长赋能。
适用范围:适用于Harmony APILevel 12及以上版本,且仅支持 Stage 应用模型。
隐私政策链接: https://www.solar-engine.com/privacyPolicy.html
合规指南:详见本页面底部合规指南内容。
第一步:获取 Appkey
Appkey 查询路径:资产管理-应用管理-16位 Appkey(即应用 ID)。

第二步:导入 SDK
两种方式导入SDK
方式一:通过鸿蒙仓库导入SDK
进入工程entry目录,执行以下命令:
ohpm install @solarengine/core
方式二:通过本地har包导入SDK
1.下载SDK:SolarEngine Harmony SDK
2.将下载的SolarEngineCorex.x.x.har放入工程libs目录,执行以下命令:
//your_project_path/entry/libs/SolarEngineCorex.x.x.har是har包路径
ohpm install your_project_path/entry/libs/SolarEngineCorex.x.x.har
第三步:配置权限
在项目中找到项目配置文件 module.json5,加入如下权限:
ohos.permission.INTERNET//必须权限,允许应用发送网络请求。
ohos.permission.GET_NETWORK_INFO//必须权限,允许应用检测网络状态。
ohos.permission.APP_TRACKING_CONSENT//必须权限,允许应用获取oaid。注:须在获得此权限后再初始化sdk,如果缺少此权限,会影响设备归因
ohos.permission.STORE_PERSISTENT_DATA//必须权限,允许应用卸载时保留distinctid,用于设备归因。
第四步:配置混淆
如果打包时需要开启混淆配置,请将下方代码增加到混淆配置文件中
-keep
./oh_modules/@solarengine/core
第五步:预初始化 SDK
在应用安装后首次冷启动时,需要先预初始化 SDK,预初始化时 SDK 不采集任何个人信息也不会向热力引擎上报数据,
请请确保用户同意《隐私政策》并且 SDK 预初始化成功后,再调用初始化函数正式初始化 SDK
方法示例
public static preInit(context: Context, appKey: string)
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
context | 应用程序上下文对象 | Context | 是 |
appKey | 第一步获取的 Appkey | string | 是 |
调用示例
import {SolarEngineManager} from '@solarengine/core'
SolarEngineManager.preInit(getContext(), appkey)
看到solar engine sdk preInit success! 代表预初始化成功了
第六步:初始化SDK
必须保证热力引擎 SDK 初始化成功后再调用其他方法,如初始化成功之前调用其他方法会不生效(设置公共事件属性、设置channel、设置预置事件自定义属性方法除外)。
方法示例
public static async initialize(context: Context, appKey: string, config: SolarEngineConfig)
参数说明
参数名称 | 参数含义 | 参数类型 | 是否必传 |
context | 应用程序上下文对象 | Context | 是 |
appKey | 第一步获取的 Appkey | string | 是 |
config | 配置项可以为空,如果为空则为默认值 | SolarEngineConfig | 否 |
SolarEngineConfig参数说明
方法名 | 参数类型 | 是否必填 | 说明 |
logEnabled | void | 否 | 是否开启本地调试日志,默认为false,不开启 |
enable2GReporting | boolean | 否 | 是否在2G网络时上报事件,默认为false,不上报 |
isDebugMode | boolean | 否 | 是否开启 Debug 模式,默认为false,不开启,使用前请查看功能说明 |
enableDeferredDeeplink | boolean | 否 | 否是启用延迟deeplink功能,默认为false,不开启 |
调用示例
import {SolarEngineManager,SolarEngineConfig, InitSDKListener } from '@solarengine/core'
let onInitListener: InitSDKListener = {
onInitComplete: (code: number) => {
console.error(TAG, `初始化完成,返回码: ${code}`);
}
};
//设置SDK初始化回调
SolarEngineManager.setInitSDKListener(onInitListener);
//SDK初始化
SolarEngineManager.initialize(getContext(), "your_appkey");
如果开启了本地调试日志开关,看到 solar engine SDK init success 代表初始化成功了
初始化回调code码:
0 | 初始化成功 |
101 | SDK未预初始化 |
102 | appkey非法 |
103 | context为空 |
104 | 数据库初始化失败 |
105 | distinct_id生成失败 |
第七步:获取归因回调信息
7.1 SDK提供两种方式获取归因结果信息
方式一:设置归因结果回调获取归因结果
注:请在SDK初始化前设置归因结果回调,因为SDK初始化时可能会立即给归因结果回调,在SDK初始化后设置可能会导致接收不到归因结果回调。
方法示例
public static setAttributionListener(attributionListener: AttributionListener)
调用示例
import { SolarEngineManager, AttributionListener} from '@solarengine/core'
let attributionListener: AttributionListener = {
onAttributionSuccess(attribution:Record<string, Object>) {
//获取归因结果成功
},
onAttributionFailed(errorCode: number) {
//获取归因结果失败
}
};
//设置归因回调监听
SolarEngineManager.setAttributionListener(attributionListener);
//初始化SDK
SolarEngineManager.initialize(getContext(),"开发者申请的appkey");
方式二:直接获取归因结果
直接获取归因结果的方法返回的是本地缓存,如果本地缓存还未生成,那么归因结果将会为 {}
方法示例
public static getAttribution(): Record<string, Object>
返回值:返回归因结果信息,如无则返回默认值: {}
调用示例
import { SolarEngineManager} from '@solarengine/core'
let attribution = SolarEngineManager.getAttribution();
归因errorCode 描述及 归因结果详情见:归因结果详情