更新记录

0.0.3(2022-10-12)

修复iOS配置项问题

0.0.2(2022-07-07)


0.0.2 (2022-7-6)

支持在 uni-app 框架中,调用QuickTracking 统计SDK相关接口,完成统计埋点及数据上报。


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


Android配置项

配置项 数据类型 含义
UMENG_URL 字符串 主收数域名(必须配置,不能为null或者空字符串)
UMENG_URL2 字符串 备用收数域名,可选,如果没有备用域名,配置值可以是空字符串
UMENG_APPKEY 字符串 Quick Tracking平台申请的appkey(必须配置,不能为null或者空字符串),注意:如果appkey为纯数字,需要在其开头加两个"##"号字符,避免Andorid读取metaData的系统API将值识别为整数。插件调用SDK预初始化函数时会自动去掉两个"##"。
UMENG_CHANNEL 字符串 App发布渠道
UMENG_LOG 整数 Android统计SDK调试日志开关,1-日志打开,0-日志关闭
UMENG_MODE 整数 对应SDK采集模式。1-手动采集模式,0-自动采集模式,默认为自动采集。建议开发者选择主动采集模式。
UMENG_NOACTIVITYPATH 整数 Activity页面路径自动采集开关(仅在自动采集模式下生效),1-不自动采集Activity页面路径,0-自动采集Activity页面路径

iOS配置项

配置项 数据类型 含义
enableLog BOOL iOS统计SDK调试日志开关,true-日志打开,FALSE-日志关闭
primaryDomain 字符串 主收数域名(必须配置,不能为null或者空字符串)
standbyDomain 字符串 备用收数域名,可选,如果没有备用域名,配置值可以是空字符串
appkey 字符串 Quick Tracking平台申请的appkey(必须配置,不能为nil或者空字符串)
channel 字符串 App发布渠道
isAutoPage BOOL 是否自动采集页面

引入方式


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin');

API

初始化接口

调用时机:Android端需要在应用安装后首次启动JS首页显示后弹出“隐私授权对话框”,并在用户点击对话框“同意”按钮后再调用init初始化函数。

注意: 初始化接口中传入的appkey和配置项不同,不需要额外增加"##"前缀。


init(String appkey, String channel, int deviceType, String pushSecret)

示例:


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
* @description QtAnalytics.init(String appkey, String channel, int deviceType, String pushSecret)
* @param {appkey} 字符串类型 友盟申请appkey
* @param {channel} 字符串类型 用户自定义渠道 
* @param {deviceType} 设备类型,1-手机;2-box(整型)
* @param {pushSecret} 保留未使用,输入空字符串即可。(字符串类型)  
* */
QtAnalytics.init('testappkey', 'testChannel', 1, '');

设置全局属性

1. 注册全局属性接口


registerGlobalProperties(string params)

示例:


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description QtAnalytics.registerGlobalProperties(String params)
 * @params 为一级平铺全局参数属性键值对,不支持嵌套
 * @return void
 */
QtAnalytics.registerGlobalProperties(JSON.stringfy({"a":1,"b":2,"c":"3","d":"undefined"}));

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


unregisterGlobalProperty(String key)

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @@description 删除某个全局属性接口
 * @param {key} 全局属性名 字符串类型
 * @return void
 */ 
QtAnalytics.unregisterGlobalProperty('a');

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


getGlobalProperties

示例:


const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description 获取全部全局属性接口
 * @return 当前已注册所有全局属性值
 */ 
const gp = QtAnalytics.getGlobalProperties();

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

clearGlobalProperties

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description 删除所有全局属性接口
 * @return void
 */ 
QtAnalytics.clearGlobalProperties();

页面浏览事件

onPageStart(String viewName) //页面开始
onPageEnd(String viewName) //页面结束
skipMe(String viewName) // 关闭当前宿主(Android Activity)页面的自动PV采集

示例:

//page1.vue
const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')

export default {
  onLoad() {
    //调用此行代码后,宿主页面会关闭PV自动采集
    QtAnalytics.skipMe('Page1');
  },
    onShow() {
    ...
    QtAnalytics.onPageStart('Page1');
    ...
  }, 
  onHide() {
    ...
    QtAnalytics.onPageEnd('Page1');
    ...
  },
  onUnload(){
    ...
    QtAnalytics.onPageEnd('Page1')
    ...
  }
}

自定义事件

onEventObject(String eventId, String params)

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description QtAnalytics.onEventObject(String eventId, String params)
 * @eventId 自定义事件名(字符串类型)
 * @params 一级平铺自定义参数属性键值对,不支持嵌套
 */

QtAnalytics.onEventObject('test_clk', JSON.stringify({"product":"水杯","productColor":"黄色","productId":"003"}));

设置用户属性

归属于自定义事件的一种,预制eventId = $$_user_profile

示例:

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
/**
 * @description QtAnalytics.onEventObject(String eventId, String params)
 * @eventId 自定义事件名(字符串类型)
 * @params 一级平铺自定义参数属性键值对,不支持嵌套 
 */

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

用户登录/登出

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

const QtAnalytics = uni.requireNativePlugin('qt-analytics-plugin')
QtAnalytics.onProfileSignIn('testUserId', 'testOrganization')

隐私、权限声明

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

android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_WIFI_STATE android.permission.INTERNET

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

QuickTracking SDK通过采集唯一设备识别码(如IMEI/android ID/IDFA/OPENUDID/GUID、SIM卡 IMSI 信息)对用户进行唯一标识,以便进行诸如用户新增等数据统计。在特殊情况下(如用户使用平板设备或电视盒子时),无法通过唯一设备识别码标识设备,我们会将设备Mac地址作为用户的唯一标识,以便正常提供统计分析服务。本产品的发数服务器地址需由开发者指定(私有化部署)。 隐私协议地址:http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.82.544b6189F8FbMr

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

许可协议

作者未提供license.md

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问