Closed YoloMao closed 2 months ago
从 2.0.0 开始,本 SDK 基于将于 2024 年第四季度发布的 HarmonyOS NEXT(5.0.0, API 12) 商业稳定版本进行开发,废弃 1.x 版本对 OpenHarmony 和 HarmonyOS(4.x, API 10-11) 的兼容 (对应 API 版本可以通过集成 Android SDK 进行采集):
另外,发布 GrowingToolsKit 插件 1.0.0,旨在帮助用户提高集成 GrowingIO SDK 效率,在使用 SDK 的开发过程中,便于排查问题,为用户提供最好的埋点服务。
以下是具体改动:
compatibleSdkVersion
从 4.0.0(10) 改为 5.0.0(12)systemDatetime.getRealTime
为 systemDatetime.getUptime
)当用非加密方式打开一个已有的加密数据库时,会返回错误码14800011,表示数据库损坏。此时用加密方式可以正常打开该数据库。
@ohos.net.http
进行事件网络请求requestOptions.readTimeout
重命名为 requestOptions.transferTimeout
,以符合 rcp.Configuration.transfer
对应的配置项名称applicationStateChange
监听应用前后台变化,兼容子窗口存在的场景dataCollectionEnabled
仅控制是否进行采集,不再控制是否发送数据,与 iOS/Android SDK 保持一致eventSequenceId
字段未进行区分,现在各个实例单独计数trackerId
作为本地存储 key 的一部分,现在使用 accountId
+ dataSourceId
以兼容更多用户场景autotrackEnabled
和 autotrackAllPages
,与其他端保持统一,其中,autotrackEnabled
控制是否开启无埋点采集,autotrackAllPages
控制是否发送无感埋点监听所触发的 PAGE 事件
注意:这 2 个配置项不影响内嵌 Flutter 所转发的 PAGE 和 VIEW_CLICK 等事件
- 最低适配 HarmonyOS NEXT(5.0.0, API 12) 商业稳定版本,compatibleSdkVersion: 5.0.0(12)
- 2.0.0 与 1.x 版本的事件数据库不兼容,集成 2.0.0 之后 1.x 版本未发送的事件将丢弃
- 该说明适用于从 1.x 版本升级,全新集成 2.0.0 按照集成文档上的步骤集成即可
ohpm update @growingio/analytics
在工程级 build-profile.json5 中配置 useNormalizedOHMUrl 为 true
{
"app": {
"products": [
{
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true
}
}
}
]
}
}
调整 SDK 初始化代码从异步改为同步:
startAnalytics() {
let config = new GrowingConfig().NewSaaS(
'Your AccountId',
'Your DataSourceId',
'Your UrlScheme',
'Your DataCollectionServerHost<Optional>'
)
GrowingAnalytics.start(this.context, config)
}
ohpm install @growingio/tools
并在 SDK 初始化时,添加 Giokit plugin:
import { GrowingToolsKit } from '@growingio/tools'
let config = new GrowingConfig().NewSaaS(
'Your AccountId',
'Your DataSourceId',
'Your UrlScheme',
'Your DataCollectionServerHost<Optional>'
)
config.plugins = [new GrowingToolsKit()]
GrowingAnalytics.start(this.context, config)
注意:请仅在 DEBUG 环境下使用 GrowingToolsKit,RELEASE 环境下 GrowingToolsKit 将不会显示
若您的应用中使用了初始化配置项 requestOptions.readTimeout
,请将其替换为 requestOptions.transferTimeout
若您的应用中使用了事件计时器相关接口,将调用方式从异步修改为同步:
let timerId = GrowingAnalytics.trackTimerStart('eventName')
GrowingAnalytics.trackTimerPause(timerId)
GrowingAnalytics.trackTimerResume(timerId)
GrowingAnalytics.trackTimerEnd(timerId)
GrowingAnalytics.trackTimerEnd(timerId, {
'property': 'value',
'property2': 100
})
GrowingAnalytics.removeTimer(timerId)
GrowingAnalytics.clearTrackTimer()
见下方评论