更新记录

0.0.2(2022-06-28)

QuickTracking分析Android原生插件 - 更新日志


0.0.2 (2022-6-27)

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


平台兼容性

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

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


配置项

配置项 数据类型 含义
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页面路径

引入方式


const sensors = uni.requireNativePlugin('qtdev-analytics-plugin');

API

初始化接口

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


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

示例:


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

设置全局属性

1. 注册全局属性接口


registerGlobalProperties(string params)

示例:


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

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


unregisterGlobalProperty(String key)

示例:

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

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


getGlobalProperties

示例:


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

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

clearGlobalProperties

示例:

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

页面浏览事件

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

示例:

//page1.vue
const UmengAnalytics = uni.requireNativePlugin('qtdev-analytics-plugin')

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

自定义事件

onEventObject(String eventId, String params)

示例:

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

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

设置用户属性

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

示例:

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

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

用户登录/登出

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

const UmengAnalytics = uni.requireNativePlugin('qtdev-analytics-plugin')
UmengAnalytics.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地址作为用户的唯一标识,以便正常提供统计分析服务。本产品的发数服务器地址需由开发者指定(私有化部署)。

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

许可协议

作者未提供license.md

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