更新记录
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 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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')