HotApp小程序统计JS SDK 文档

2016/11/29 15:16
阅读数 206

HotApp小程序统计JS SDK文档

JSSDK 下载地址 http://wenda.hotapp.cn/article/1

HotApp 小程序统计功能说明 https://weixin.hotapp.cn/

文档原文链接 http://wenda.hotapp.cn/question/5

1. init(String hotAppKey)
hotapp.init是整个sdk的初始化, 所有接口都依赖于这个
示例

var hotapp = require(util/hotapp.js);
App({
    hotapp.init('hotapp11377340');
});

2. onEvent(String event)
调用hotapp.onEvent会给我们的统计后台发送事件, 您首先必须要在后台添加事件, 调用此接口才会生效。
示例

hotapp.onEvent('regist);

3. setEventUploadType()
4. clearData()
hotapp.clearData会清空hotapp sdk设置的所有的缓存数据.

5. wxlogin(closure)
hotapp.wxlogin会调用我们提供的微信登录功能获取微信小程序用户的openid, 有了openid就可以唯一地标识一个用户了. 
如果您没有在我们的后台设置AppID和AppSecret, 那么获取到的是我们给您生成的一个id, 我们称为fakeOpenId, 也可以标识一个用户, 但是当用户清空缓存或者更换手机设备, 那么又会生成一个id

  • 如果正确填写了AppID和AppSecret: 

    在回调中使用

hotapp.wxlogin(function(openID) {
    console.log(openID);
});

    登录成功之后再使用

hotapp.wxlogin();
...
var openid hotapp.getOpenID();

 

  • 如果没有填写AppID和AppSecret

    在回调中使用

hotapp.wxlogin(function(fakeOpenID) {
    console.log(fakeOpenID);
});

 

  • 登录成功之后再使用
hotapp.wxlogin();
...
var openid hotapp.getFakeOpenID();

6. getOpenID(closure)
当您正确填写AppID和AppSecret, 并且hotapp.login()调用成功, 那么就可以通过这个方法获取小程序用户的openid来唯一标识用户了.

7. getFakeOpenID(closure)
如果没有填写AppID和AppSecret, 或者AppID和AppSecret填写错误, 或者微信登录接口调用失败, 我们会生成一个fakeOpenID, 来唯一标识使用小程序的用户, 然后就可以调用这个方法来取得fakeOpenID
示例

hotapp.login();
...
var openid = hotapp.getOpenID();
if (openid) {
    console.log(openID);
} else {
    openid = hotapp.getFakeOpenID();
}


8. genPrimaryKey(String prefix)
hotapp.genPrimaryKey可以生成一个与业务逻辑和用户有关的唯一key 
比如prefix_2efsdFef2FEE-fdsf2f_1423453220 
其中: 
prefix是通过函数传递过来的参数 
2efsdFef2FEE-fdsf2f是用户的openID(如果没有填写AppID和AppSecret, 那么就是fakeOpenID) 
1423453220是一个时间戳 
可以根据您小程序的业务逻辑, 生成不同的前缀, 来配合我们提供的云后台接口方便使用.
比如, 在HotApp云笔记项目中, 我们用item来标识笔记, 用feedback来标识反馈 当用户新建一条笔记时, 我们调用

hotapp.genPrimaryKey('item');

来生成笔记的key, key类似于这种: item_2fdsf2fds-fdsimw2_14243580 
当用户提交一个反馈时, 我们调用

hotapp.genPrimaryKey('feedback')

来生成反馈的key, key类似于这种: feedback_2fdsf2fds-fdsimw2_142435333

9. getPrefix(String prefix)
hotapp.getPrefix会生成一个key的前缀, 比如: prefix_2efsdFef2FEE-fdsf2f_ 
您有可能需要查找所有带指定前缀的key, 那么就可以先调用这个获取key的前缀, 然后再调用hotapp.searchkey

10, replaceOpenIdKey(String primaryKey, closure cb)
hotapp.replaceOpenIdKey会把通过fakeOpenID生成的primaryKey替换成用openid生成的primaryKey.

在HotApp云笔记中, 我们考虑到一种场景: 当您的用户第一次调用登录接口时, 没有打开网络而导致openid获取失败, 这时会生成一个fakeOpenID, 然后用户写了几条笔记, 这几条笔记的都是保存在本地缓存中的, 这些笔记的key都是与fakeOpenID相关的. 当用户打开网络并把笔记同步到云后台时, 我们就把本地缓存中所有的通过fakeOpenID生成的primaryKey替换成用openid生成的primaryKey, 来保证数据的准确性.

11, searchkey(Object filters, closure)

hotapp.searchkey可以请求hotapp云后台的https://wxapi.hotapp.cn/api/searchkey 接口, 功能是查找带前缀的所有key 
filters的参数说明:

参数       类型   必填   说明
prefix     String   是   指定的key的前缀
pageIndex   Integer   否  分页查询时第几页, 默认为1
pageSize   Integer   否   分页查询时每页的数量, 默认为10, 0表示部分也, 查找所有的数据
withValue   Boolean   否  返回值中是否携带value字段, 默认为true
order     String    否  排序的column, 默认为create_time, 只有create_time和update_time可选
direction  String    否  排序的方向, 默认为asc, 只有asc和desc, 分别表示从大到小和从小到大

closure是一个闭包, 可以接收到服务器返回的数据
返回值示例:

{
    "ret": 0,
    "msg": "sucess",
    "data": {
        "pageIndex": 1,
        "pageSize": 10,
        "totalCount": 2,
        "itemCount": 2,
        "items": [
        {
            "key": "openid123_1",
            "create_time": "1479808954",
            "update_time": "1479883900"
        },
        {
            "key": "openid123_2",
            "create_time": "1479808996",
            "update_time": "1479808996"
        }]
    }
}

使用示例
// 查找某个用户的所有笔记

var prefix = hotapp.getPrefix('item');
var filters = {
    prefix: "item",
    pageIndex: 1,
    pageSize: 0,
    withValue: true,
    order: create_time,
    direction: desc
}
var items = hotapp.searchkey(filters, function(res) {
    if (res.ret == 0) {
        console.log(res.data);
    } else {
        console.log('error');
    }
});


12, get(String key, closure)
hotapp.get可以请求hotapp云后台的https://wxapi.hotapp.ch/api/get 接口, 功能是根据指定的key查找value
示例

hotapp.get('item_2fdsf2fds-fdsimw2_14243580', function(res) {
    if (res.ret == 0) {
        console.log(res.data);
    } else {
        console.log('error');
    }
});



13. post(String key, String value, closure)
hotapp.post可以请求hotapp云后台的 https://wxapi.hotapp.cn/api/post 接口, 功能是更新或者新增一对key-value
示例

hotapp.post('item_2fdsf2fds-fdsimw2_14243580', 'test', function(res) {
    if (res.ret == 0) {
        console.log(res.data);
    } else {
        console.log('error');
    }
});


14. del(String key, closure)
hotapp.del可以请求hotapp云后台的https://wxapi.hotapp.cn/api/del 接口, 功能是删除指定的key-value
示例

hotapp.del('item_2fdsf2fds-fdsimw2_14243580', function(res) {
    if (res.ret == 0) {
        console.log(res.data);
    } else {
        console.log('error');
    }
});

15. request(Object)
hotapp.request是把开发者的域名通过https://wxapi.hotapp.cn/proxy接口转发为开发者自己的url
该接口的调用方式, 比微信原声的wx.request多加了一个参数: useProxy, 这个参数表示是否使用我们的代理服务, 默认是true. 其余的调用方式和wx.request是一模一样的
示例

wx.request({
    useProxy: true,
    url: 'http://www.test.com', // 先调用https://wxapi.hotapp.cn/proxy然后再转发到http://www.test.com
    data: {
        x: '' ,
        y: ''
    },
    header: {
        'content-type': 'application/json'
    },
    success: function(res) {
        console.log(res.data)
    }
})

16. getVersion()
hotapp.getVersion 可以返回js sdjk的版本号,
示例

var version = hotapp.getVersion()

17. setDebug(Boolean debug)
hotapp.setDebug可以设置是否打印错误日志,默认为false
示例

hotapp.init('appkey123');
var version = hotapp.setDebug(true);
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部