HotApp小程序JS SDK文档

1. 一行代码接入统计
HotApp微信小程序接入只需要在小程序中加入一段代码
//app.js
var hotapp = require('utils/hotapp.js');

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
示例
var hotapp=require('./utils/hotapp.js');
hotapp.setDebug(true); // 显示调试信息开关

已邀请:

sff135

赞同来自:

非常好,,没有电脑,有点麻烦!

要回复问题请先登录注册