快应用统计SDK(选接)
申请appid
请参考接入准备 获取AppId及相关密钥
注意快应用不能和Android、iOS应用共用一个appid, 必须单独申请否则会导致统计异常
获取SDK
wkdata-1.5.0 wkdata-1.5.0.zip
版本更新
版本号 | 更新内容 | 发布时间 |
---|---|---|
1.5.0 | 1)添加手动加桌检测 2)优化带检测加桌接口 |
2020-01-14 |
1.4.0 | 1)添加桌面快捷方式接口,方便由SDK采集桌面状态 | 2019-11-01 |
1.3.2 | 1)添加平台版本字段 | 2019-10-29 |
1.3.1 | 1)优化桌面快捷方式检测时机,能更加及时反应加桌面情况 | 2019-08-20 |
1.3.0 | 1)添加设置来源信息功能 | 2019-08-14 |
1.2.0 | 1)添加异常统计功能 | 2019-08-02 |
1.1.1 | 1)生产版本使用HTTPS | 2019-05-16 |
1.0.1 | 1)去除对sensor信息的获取,部分机型的快应用框架存在获取sensor信息时会存在ANR现象。 | 2019-04-19 |
1.0.0 | 1)添加风控信息采集 2)修复上报异常导致页面出错 3)优化页面退出时长统计 4)改进初始化,避免无设备ID时报SDK未初始化 5)优化上报逻辑 |
2019-04-12 |
0.3.1 | 1)修复sessions计次数功能 2)去除带桌面快捷方式进行渠道后缀处理功能,统一由服务端来统计 3)修复打印异常代码 |
2019-02-15 |
0.2.5 | 初始版本 | 2019-01-30 |
导入项目
把sdk中的 wkdata-${version}.min.js
、wkdata.config.js
拷贝到项目中和app.ux同级的目录。
配置参数
请将申请到的参数配置到wkdata.config.js中
export default {
'app_id': 'APP_ID',
'aes_key': 'AES_KEY',
'aes_iv': 'AES_IV',
'md5_key': 'MD5_KEY',
'phoneState': true, //风控需要,如果应用不希望弹框可以关闭
'coarseLocation': true, //风控需要,如果应用不希望弹框可以关闭
'fineLocation': true //风控需要,如果应用不希望弹框可以关闭
}
配置所需权限
在项目中的manifest.json
文件里的features
属性中添加权限声明代码,如下:
// manifest.json文件
"features": [
{"name": "system.fetch"},
{"name": "system.device"},
{"name": "system.network"},
{"name": "service.account"},
{"name": "system.shortcut"},
{"name": "system.storage"},
//以下是风控需要
{"name": "system.brightness"},
{"name": "system.volume"},
{"name": "system.battery"},
{"name": "system.sensor"},
{"name": "system.geolocation"},
{"name": "system.wifi"},
{"name": "system.bluetooth"}
]
初始化SDK代码
在项目的app.ux
文件的script
标签中引入SDK,在其onCreate中初始化
<script>
import "./wkdata-${version}.min.js"
import device from '@system.device'
export default {
onCreate:function(){
// 统计打点, 注意此处的ANDROID_ID需要应用方自己传入
// 如果不想使用ANDROID_ID则可以使用自己定义的设备ID,但是要保证应用内ID不再发生变化
// 否则会影响统计
$WKDATA.init(this, channel);
// 设置AndroidID,如果SDK没有获得AndroidID将无法上报数据
device.getUserId({
success: function (data) {
console.log(`app get aid success: ${data.userId}`)
$WKDATA.setDeviceId(data.userId)
},
fail: function (data, code) {
console.log(`app get aid fail, code = ${code}`)
}
})
// 其他代码...
},
// 统计异常信息,可以通过 http://cr-admin.51y5.net 实时查看异常信息
// 注:申请时需要提供appid
onError(err) {
$WKDATA.onError(err);
}
}
</script>
页面打点
在快应用的所有页面文件( manifest.json 中 router > pages 对象下声明的页面对应的.ux文件中 )中增加统计代码,有两种接入方法:
方法一:
在App每个路由页面的onShow
、onHide
和onBackPress
方法中调用$WKDATA.onShow()
、$WKDATA.onHide()
和$WKDATA.onBackPress()
方法,如下:
// 页面.ux
<template>
...
</template>
<script>
export default {
onShow(){
$WKDATA.onShow(this);//在onShow方法的第一行加入此代码
...
},
onHide() {
$WKDATA.onHide(this); //在onHide方法的第一行加入此代码
...
},
onBackPress() {
$WKDATA.onBackPress(this); //在onBackPress方法的第一行加入此代码
...
},
...
}
</script>
方法二:
这种方式相对简单,不过有一定入侵性,开发者无需自己调用$WKDATA.onShow()
、$WKDATA.onHide()
和$WKDATA.onBackPress()
方法,而是通过$WKDATA
提供的的全局函数$WKDATA_Helper()
,如下:
// 页面.ux
<template>
...
</template>
<script>
export default $WKDATA_Helper ({
//此处无需调用onShow, onHide, onBackPress, $WKDATA_Helper已经实现
...
})
</script>
自定义打点
调用方法
$WKDATA.onEvent(eventName, eventAttr);
// eventName为字符串
// eventAttr为key-value的json,key和value都必须为string
设置来源
版本:1.3.0+
调用方法
// source为来源字符串
$WKDATA.setSource(source);
进行手动加桌检测
版本:1.5.0+
由应用方主动调用,及时检测避免自动检测有遗漏,在不方便使用$WKDATA.addShortcut()
方法时可以使用此方法
调用方法
// 便于SDK及时统计是否加桌面
// 调用此方法后SDK内部会去检测加桌状态是否发生变化如果有变化则会上报事件
$WKDATA.checkShortcut();
添加桌面快捷方式
版本:1.4.0+
调用方法
// 便于SDK及时统计是否加桌面
// obj也可以不传,根据业务方需求
var obj = {
message: "msg",
success: () => {
//TODO success
},
fail: () => {
//TODO fail
},
complete: () => {
//TODO complete
}
}
$WKDATA.addShortcut(obj);
接入验证
抓包查看返回是否为{"retCd":"0"}
其他配置信息
开启DEBUG
开启debug后会打印日志,并将数据上报到wifi30服务器上,可供测评人员验证埋点是否正确。 在生产环境下不能设置为true
$WKDATA.setDebug(true); //默认为false
获取当前版本号
$WKDATA.version