growingio / growingio-sdk-harmonyos

GrowingAnalytics for HarmonyOS.
Apache License 2.0
0 stars 0 forks source link

feat: release 2.0.0(0930) #7

Closed YoloMao closed 2 months ago

YoloMao commented 3 months ago

见下方评论

YoloMao commented 3 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 的开发过程中,便于排查问题,为用户提供最好的埋点服务。

以下是具体改动:

Refactor (BREAKING CHANGE) 破坏性更改

Features 功能

Bug Fixes 修复

其他

Experimental Features 实验性功能

YoloMao commented 3 months ago

HarmonyOS NEXT SDK 2.0.0 升级说明

  • 最低适配 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 中心仓更新

ohpm update @growingio/analytics

配置标准化 OHMUrl

在工程级 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)
}

集成 GioKit(推荐)

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()