growingio-sdk-android-autotracker icon indicating copy to clipboard operation
growingio-sdk-android-autotracker copied to clipboard

feat: jetpack compose

Open cpacm opened this issue 5 months ago • 0 comments

PR 内容

Growingio 无埋点 SDK 支持 Jetpack Compose 框架,包括页面事件,无埋点点击事件和圈选功能。

  1. 如何引入 在引入无埋点插件的前提下,添加新的KCP插件.
plugins {
    // "com.growingio.compose.plugin"
    alias(libs.plugins.growingio.compose.plugin)
}

初始化时添加 ComposeLibraryGioModule 模块

addPreloadComponent(ComposeLibraryGioModule())

其他引入和初始化过程与Android 过程一致。

  1. 手动设置页面 在 @composable组件下将要声明的页面组件使用 GrowingComposePage 包裹。各个参数分别为:alias为页面唯一识别名称,attributes为页面属性,content则为原来的 composable 组件内容。
GrowingComposePage(
    alias = JetnewsDestinations.INTERESTS_ROUTE,
    content = {
        InterestsRoute(
            interestsViewModel = interestsViewModel,
            isExpandedScreen = isExpandedScreen,
            openDrawer = openDrawer
        )
    }
)

至此,compose 无埋点框架配置完成。

其他一些用法。

  1. Modifier.growingTag(tag: String) 为点击的组件设置别名,对应于 View.setTag
  2. Modifier.interruptClick() 由于compose获取点击组件是由上而下遍历的且取最后一个组件,所以多个点击组件重叠时使用该方法来排查后面的组件。
  3. 圈选时,Lazy系列的List的index并不一定准确。

测试步骤

可以使用 (compose-samples)[https://github.com/android/compose-samples/tree/main]中的例子来测试。

影响范围

Jetpack Compose 框架与无埋点

是否属于重要变动?

  • [x] 是
  • [ ] 否

其他信息

cpacm avatar Sep 04 '24 03:09 cpacm