更新记录

1.0.2(2025-12-23) 下载此版本

更新android以及ios 原生sdk

1.0.1(2025-11-21) 下载此版本

  • feat: 更新插件适用平台范围

1.0.0(2025-11-21) 下载此版本

  • 1.0.0 feat: QuickTracking统计分析新增支持uts插件
查看更多

平台兼容性

uni-app(3.7.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android Android插件版本 iOS iOS插件版本 鸿蒙 鸿蒙插件版本
× × × × × × 16.0 1.0.0 12 1.0.0 5.0.1(13) 1.0.0
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × ×

uni-app x(3.7.0)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 鸿蒙插件版本 微信小程序
× × 16.0 1.0.0 12 1.0.0 5.0.1(13) 1.0.0 ×

QT-Analytics

简介

使用 uts 开发,基于瓴羊统计分析SDK封装插件,支持iOS、Android 和鸿蒙Next平台

插件使用说明

在使用插件前您需要在Quick Tracking平台中获取专属的埋点 Appkey 和 收数域名

初始化前置

将QT-Analytics插件导入HBuilderX中的工程。如图所示:

Android

因SDK需要Applicaiton.onCreate函数中调用预初始化函数QtConfigure.preInit(),预初始化函数不会采集设备信息 需要您修改对应module中的index.uts文件 如图:

鸿蒙Next

因架构限制需要在应用侧stage中进行SDK的预初始化 需要您修改对应module中的index.uts文件 如图:

初始化

import * as QtAnalytics from '@/uni_modules/QT-Analytics';

export default {
    data() {
        return {
            title: 'Hello'
        }
    },
    onLoad() {
        // #ifdef APP-ANDROID || APP-HARMONY
        QtAnalytics.init()
        // #endif
        // #ifdef APP-IOS
        QtAnalytics.setCustomDomain('您的收数服务域名', '您的备用收数服务域名');
        QtAnalytics.initWithAppkey('您应用的appkey', '应用市场');
        // #endif
    }
}

API与说明

设置全局属性

1. 注册全局属性接口

/**
 * @description QtAnalytics.registerGlobalProperties(String params)
 * @params 为一级平铺全局参数属性键值对,不支持嵌套,并且iOS端不支持值为 null 和 "" 类型的键
 * @return void
 */
registerGlobalProperties(string params)
示例:
QtAnalytics.registerGlobalProperties(JSON.stringify({
  "param_1":"value_1",
  "param_2":"value_2",
  "param_3":"value_3",
  "param_4":"undefined"
}));

2. 删除某个全局属性接口

/**
 * @@description 删除某个全局属性接口
 * @param {key} 全局属性名 字符串类型
 * @return void
 */
unregisterGlobalProperty(String key)
示例:
QtAnalytics.unregisterGlobalProperty('a');

3. 获取全部全局属性接口

/**
 * @description 获取全部全局属性接口
 * @return 当前已注册所有全局属性值
 */
getGlobalProperties
示例:
const gp = QtAnalytics.getGlobalProperties();

4. 删除所有全局属性接口

/**
 * @description 删除所有全局属性接口
 * @return void
 */ 
clearGlobalProperties
示例:
QtAnalytics.clearGlobalProperties();

页面事件

1. 页面浏览事件

/** 自动页面时长统计, 开始记录某个页面展示时长.
 使用方法:onPageStart和onPageEnd两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。
 在该页面展示时调用onPageStart,当退出该页面时调用onPageEnd
 @param viewName 统计的页面名称
 */
onPageStart(String viewName) //页面开始
onPageEnd(String viewName) //页面结束
请注意:必须配对调用onPageStart()和onPageEnd()两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。

示例:
//page.vue
const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')

export default {
   onShow() {
     ...
     QtAnalytics.onPageStart('当前页面的页面编码');
     ...
   }, 
   onHide() {
     ...
     QtAnalytics.onPageEnd('当前页面的页面编码');
     ...
   },
}

2. 更新页面属性

页面属性设置接口setPageProperty(),支持给当前页面附加自定义属性。

/**
 * @pageName 目标页面名,必须和当前页面名一致。如不一致,函数执行无效
 * @pageProperty 需要关联到页面的k-v键值对参数。value 值仅支持 string、number,并且不支持多层嵌套对象
 *
 * @warning 调用说明:必须在onHide之前调用
 */
setPageProperty(String pageName, Object pageProperty)
请注意:请在调用onPageStart之后设置页面属性。

示例:
//page.vue
const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')

export default {
   onShow() {
     ...
     QtAnalytics.onPageStart('当前页面的页面编码');
     QtAnalytics.setPageProperty('当前页面的页面编码', {
      "pageparam_1":"value_1",
      "pageparam_2":"value_2",
      "pageparam_3":"value_3"
     })
     ...
   }, 
   onHide() {
     ...
     QtAnalytics.onPageEnd('当前页面的页面编码');
     ...
   },
}

自定义事件

/**
 * @description QtAnalytics.onEventObject(String eventId, String params)
 * @eventId 自定义事件名(字符串类型)
 * @params 一级平铺自定义参数属性键值对,不支持嵌套
 */
onEventObject(String eventId, String params)
示例:
QtAnalytics.onEventObject(
  'test_clk', 
  JSON.stringify({
      "product":"水杯",
      "productColor":"黄色",
      "productId":"003"
  })
);

用户相关

1. 用户登录

onProfileSignIn(String puid, String provider = "'') 第二个参数默认为空字符串

QtAnalytics.onProfileSignIn('testUserId', 'testOrganization')

2. 用户登出

QtAnalytics.onProfileSignOff() 设置用户属性 需先调用用户登入功能设置用户 id,再调用设置用户属性API。归属于自定义事件的一种,事件编码需写死为 $$_user_profile 示例:

/**
 * @description QtAnalytics.onEventObject(String eventId, String params)
 * @eventId 需写死为 $$_user_profile
 * @params 一级平铺自定义参数属性键值对,不支持嵌套 
 */

QtAnalytics.onEventObject(
  '$$_user_profile', 
  JSON.stringify({
    "gender":"male",
    "_user_nick":"a_nick",
    "province":"Beijing"
  })
);

全部API

/**
 * 预初始化SDK(安卓、鸿蒙)
 * @param appKey 应用密钥
 * @param trackDomain 主跟踪域名
 * @param trackDomain2 备用跟踪域名
 */
export function preInit(appKey: string, trackDomain: string, trackDomain2: string) 
/**
 * 初始化QT SDK核心功能(安卓、鸿蒙)
 */
export function init()
/**
 * 初始化QT SDK核心功能(iOS)
 * @param appKey 应用密钥
 * @param channel 应用市场
 */
export function initWithAppkey(appKey : string, channel : string)
/**
 * 设置SDK收数域名(iOS)
 * @param primaryDomain 主收数域名
 * @param standbyDomain 备用收数域名
 */
export function setCustomDomain(primaryDomain : string, standbyDomain : string)
/**
 * 控制QT日志开关状态
 * @param enabled 启用(true)/禁用(false)日志记录
 */
export function setLogEnabled(enabled: boolean) 

/**
 * 注册全局属性配置
 * @param jsonString 包含属性键值对的JSON格式字符串
 */
export function registerGlobalProperties(jsonString: string) 
/**
 * 移除指定全局属性
 * @param key 需要删除的属性唯一标识
 */
export function unregisterGlobalProperty(key: string)

/**
 * 获取指定全局属性值
 * @param key 属性键名
 * @returns 属性值
 */
export function getGlobalProperty(key: string): 

/**
 * 获取所有全局属性
 * @returns 全局属性的JSON字符串表示
 */
export function getGlobalProperties(): string 

/**
 * 清除所有全局属性
 */
export function clearGlobalProperties() 

/**
 * 用户登录事件追踪
 * @param userId 用户身份唯一标识
 * @param provider 登录服务提供商名称(可选)
 */
export function onProfileSignIn(userId: string, provider: string = '')

/**
 * 用户登出事件追踪
 */
export function onProfileSignOff() 

/**
 * 发送自定义埋点事件
 * @param eventId 事件编码
 * @param params 参数,jsonstring
 */
export function onEventObject(eventId: string, params?: string) 

/**
 * 页面埋点 - 进入页面,需要和onPageEnd配合使用
 * @param pageName 页面唯一标识名称
 */
export function onPageStart(pageName: string) 
/**
 * 页面埋点 - 离开页面,需要和onPageStart配合使用
 * @param pageName 页面唯一标识名称
 */
export function onPageEnd(pageName: string) 

/**
 * 启用曝光采集功能
 */
export function enableExposureCollection() 

/**
 * 禁用曝光采集功能
 */
export function disableExposureCollection() 
/**
 * 设置曝光配置参数
 * @param config 曝光配置对象
 */
export function setExposureConfig(config: ExposureConfig) 

/**
 * 添加曝光视图
 * @param view 需要监控的视图组件
 * @param exposureData 曝光数据对象
 */
export function addExposureView(view: View, exposureData: ExposureData)
/**
 * 获取分享参数映射表
 * @returns 分享参数映射表
 */
export function getRefShareParams(): Map<string, string> 
/**
 * 请求分享参数
 * @param url 请求URL地址
 * @param params 请求参数映射表(可选)
 * @param timeout 超时时间,默认30000毫秒
 * @param callback 回调接口(可选)
 */
export function requestShareParams(url: string, params?: Map<String, String>, timeout: number = 30000, callback?: ShareResults) 

/**
 * 禁用页面自动埋点收集
 */
export function disableActivityPageCollection() 

/**
 * 启用或禁用SDK监控功能
 * @param enable 是否启用SDK监控
 */
export function enableSDKMonitor(enable: boolean) 

/**
 * 获取设备唯一标识UMID
 * @returns 设备UMID字符串
 */
export function getUMIDString(): string 

/**
 * 设置页面属性
 * @param pageName 目标页面名,必须和当前页面名一致。如不一致,函数执行无效
 * @param params jsonString 包含属性键值对的JSON格式字符串 并且不支持多层嵌套对象
 *
 * @warning 调用说明:必须在onHide之前调用
 */
export function setPageProperty(pageName: string, params: string) 

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的QuickTracking SDK会采集数据,详情可参考:https://help.aliyun.com/document_detail/252738.html

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。