快应用统计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.jswkdata.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每个路由页面的onShowonHideonBackPress方法中调用$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