更新记录
0.0.3(2022-07-05) 下载此版本
支持在 uni-app 框架中,调用QuickTracking 统计 Android 相关接口,完成统计埋点及数据上报。
0.0.2(2022-07-01) 下载此版本
支持在 uni-app 框架中,调用QuickTracking 统计 Android 相关接口,完成统计埋点及数据上报。
平台兼容性
Android | iOS |
---|---|
× | 适用版本区间: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原生插件配置”->”云端插件“列表中删除该插件重新选择
使用uni-app进行埋点
在Page页面 或者 App.vue中获取插件实例
App.vue 或者 XXX.vue 中引入
<script>
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics');
...
</script>
初始化接口
调用时机:Android端需要在应用安装后首次启动JS首页显示后弹出“隐私授权对话框”,并在用户点击对话框“同意”按钮后再调用init初始化函数。
init(String appkey, String channel, int deviceType, String pushSecret)
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
/**
* @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('UmengAnalytics')
/**
* @description UmengAnalytics.registerGlobalProperties(String params)
* @params 为一级平铺全局参数属性键值对,不支持嵌套,并且iOS端不支持值为 null 和 "" 类型的键
* @return void
*/
UmengAnalytics.registerGlobalProperties(JSON.stringfy({"a":1,"b":2,"c":"3","d":"undefined"}));
2.删除某个全局属性接口
unregisterGlobalProperty(String key)
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
/**
* @@description 删除某个全局属性接口
* @param {key} 全局属性名 字符串类型
* @return void
*/
UmengAnalytics.unregisterGlobalProperty('a');
3.获取全部全局属性接口
getGlobalProperties
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
/**
* @description 获取全部全局属性接口
* @return 当前已注册所有全局属性值
*/
const gp = UmengAnalytics.getGlobalProperties();
4.删除所有全局属性接口
clearGlobalProperties
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
/**
* @description 删除所有全局属性接口
* @return void
*/
UmengAnalytics.clearGlobalProperties();
代码埋点
1.页面浏览事件
onPageStart(String viewName) 页面开始
onPageEnd(String viewName) 页面结束
skipMe(String viewName) 关闭当前宿主(Android Activity/iOS ViewController)页面的自动PV采集
//page1.vue
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
export default {
onLoad() {
//调用此行代码后,宿主页面会关闭PV自动采集
UmengAnalytics.skipMe('Page1');
},
onShow() {
...
UmengAnalytics.onPageStart('Page1');
...
},
onHide() {
...
UmengAnalytics.onPageEnd('Page1');
...
},
onUnload(){
...
UmengAnalytics.onPageEnd('Page1')
...
}
}
2.自定义事件
onEventObject(String eventId, String params)
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
/**
* @description UmengAnalytics.onEventObject(String eventId, String params)
* @eventId 自定义事件名(字符串类型)
* @params 一级平铺自定义参数属性键值对,不支持嵌套,并且iOS端不支持值为 null 和 "" 类型的键
*/
UmengAnalytics.onEventObject('test_clk', JSON.stringify({"product":"水杯","productColor":"黄色","productId":"003"}));
设置用户属性
归属于自定义事件的一种,预制eventId = $$_user_profile
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
/**
* @description UmengAnalytics.onEventObject(String eventId, String params)
* @eventId 自定义事件名(字符串类型)
* @params 一级平铺自定义参数属性键值对,不支持嵌套,并且iOS端不支持值为 null 和 "" 类型的键
*/
UmengAnalytics.onEventObject('$$_user_profile', JSON.stringify({"gender":"male","_user_nick":"a_nick","province":"Beijing"}));
用户登录/登出
onProfileSignIn(String puid, String provider = '')
第二个参数默认为 空字符串
const UmengAnalytics = uni.requireNativePlugin('UmengAnalytics')
UmengAnalytics.onProfileSignIn('testUserId', 'testOrganization')