Demo/
|- entry/ (项目主模块)
| |- libs/ (第三方库,用户手动创建)
| |- src/ (代码目录)
| |- oh-package.json5(模块级oh-package.json5文件)
|- build-profile.json5
|- hvigorfile.ts
|- oh-package.json5 (顶层oh-package.json5文件)
| ......
注:其中 “......” 表示省略其他与本教程无关的内容,以下 “......” 表示相同意义,不再重复说明。
请参考 创建应用 获取相应的AppID信息。该信息在之后的步骤配置中将会使用。
{
"dependencies": {
"@getui/ido": "x.x.x"//填写对应版本号,如:"@getui/ido": "1.0.1"
}
}
{
"app": {
"products": [
{
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true
}
}
}
]
}
}
注意:当前只支持本地集成
通过官网下载或技术支持获取ido.har
在项目主模块entry下创建libs文件夹
将下载好的har包ido.har放到libs文件夹下
Demo/
|- entry/ (项目主模块)
| |- libs/ (第三方库,用户手动创建)
| |-IDO-HM-1.0.1.har (个推用户运营SDK)
| ......
找到entry模块级oh-package.json5文件,依赖ido.har
Demo/
|- entry/ (项目主模块)
| |- libs/ (第三方库,用户手动创建)
| |- src/ (代码目录)
| | |- main/
| | | |- module.json5(模块级基本配置文件)
| |- oh-package.json5(模块级oh-package文件)
| ......
oh-package.json5 配置如下:
{
"name": "entry",
"version": "1.0.0",
"description": "Please describe the basic information.",
"main": "",
"author": "",
"license": "",
"dependencies": {
"@getui/ido": "file:./libs/IDO-HM-1.0.1.har"
}
}
module.json5 配置如下:
配置注册好的个推AppId和权限
{
"module": {
.....
"metadata": [
{
"name": "GETUI_APPID",
"value": "替换您注册个推AppId"
}
],
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
},
{
"name": "ohos.permission.GET_NETWORK_INFO"
},
{
"name": "ohos.permission.GET_WIFI_INFO"
},
{
"name": "ohos.permission.APP_TRACKING_CONSENT",
"reason" : "$string:oaid_reason",
"usedScene": {
"when": "always"
}
}
]
}
}
运行指令ohpm install
在`@ohos.app.ability.AbilityStage的onCreate方法中进行预初始化:Ido.preInit(context: Context)`
import { Ido, IdoConfig } from '@getui/ido'
export default class MyAbilityState extends AbilityStage {
onCreate(): void {
// 日志开关
IdoConfig.setDebugEnable(true)
// 设置channel
IdoConfig.setChannel('getui_channel')
// 预初始化
Ido.preInit(this.context)
Ido.setUserId('getui_ido_user')
}
在适当时机进行初始化:init(context: Context): Promise<string>
Ido.init(this.context).then((gtcId) => {
hilog.info(0x0000, 'IDOAbility', 'IDO init Succeeded. GtcId: (%{public}s)', gtcId);
})
应用时长统计用于统计应用启动次数和真实活跃时长,初始化SDK 后不需要开发者调用额外的接口。
其中鸿蒙平台一次完整的启动包括如下两种情况:
1.从启动应用到关闭应用;
2.从启动应用到应用退至后台,且在后台时间超过 30秒(该值可通过下面的方法修改,单位毫秒);
IopConfig.setSessionTimeoutMillis(sessionTimeoutMillis: number)
自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。
通常由 event_id 作为一个事件的唯一标识。
自定义事件分为:
计数统计事件:统计指定行为被触发的次数。
计时统计事件:统计指定行为消耗的时间,单位毫秒。需要 eventBegin 和 eventEnd 接口成对使用才可生效。
每类事件都支持使用 Map<string, string | number | Date | boolean> 参数类型,其中 key 必须为字符串类型,value 目前支持类型有 string、 Number 、 Boolean 、 Date 。
// 计数统计事件
const map1 = new Map<string, string | number | Date | boolean>()
map1.set('test1', 1)
map1.set('test2', '2')
map1.set('test3', true)
map1.set('test4', new Date())
Ido.onEvent('event1', map1)
// 计时统计事件
Ido.onBeginEvent('event2')
const map2 = new Map<string, string | number | Date | boolean>()
map2.set('test1', 1)
map2.set('test2', '2')
map2.set('test3', true)
map2.set('test4', new Date())
Ido.onEndEvent('event2', map2)
// 用户属性事件
const map3 = new Map<string, string | number | Date | boolean>()
map3.set('test1', 1)
map3.set('test2', '2')
map3.set('test3', true)
map4.set('test4', new Date())
Ido.onProfile(map3)
以上文档对您是否有帮助?