微信小程序接入
2020.06.08 14:33:23
兼容性
支持小程序基础库所有版本
接入流程
- 添加域名白名单
- 嵌入SDK
- init:初始化SDK以获取SDK对象,整个页面SDK初始化一次即可;
- getToken:获取token,每次调用返回不同的token值。
- 提交token:将token作为请求参数提交到业务方后端。
添加域名白名单
使用公众号帐号登录微信公众平台,在管理员首页的左侧栏,可以找到 设置 - 开发设置,需要将小程序SDK的服务器域名(地址:https://ac.dun.163yun.com)加入服务器域名白名单。
嵌入SDK
下载并保存SDK代码至本地(编码格式为UTF8),下载地址:https://nos.netease.com/yidun/watchman.m2.0.0.min.js 在需要保护的小程序页面嵌入SDK,请注意:
- 请在该页面头部引入;
- 一个页面引入一次即可;
示例代码如下:
const WATCH_MAN = require('./watchman.min.js')
init接口
嵌入sdk后,在onLoad或者onReady生命周期回调函数中进行初始化SDK,以获取SDK对象,拥有SDK对象才能调用SDK的其他接口。接口调用说明如下:
- 调用方式:WATCH_MAN.init(options)
- 返回值:void
参数options是json,结构如下:
属性名 | 类型 | 是否必须 | 作用 |
---|---|---|---|
productNumber | String | 是 | 产品编号 |
onload | Function | 是 | 初始化完成后的回调函数,SDK对象将以回调函数参数的形式提供 |
onerror | Function | 否 | 初始化失败的回调函数 |
初始化SDK的示例代码如下:
const WATCH_MAN = require('./watchman.min.js')
Page({
data: {
watchmanInstance:null
},
onLoad: function () {
WATCH_MAN.init({
productNumber: 'YOUR_PRODUCT_NUMBER',
onload: (instance) => {
this.data.watchmanInstance = instance
}
})
}
})
getToken接口
getToken接口返回唯一凭证token,业务方前端需要将此token提交到业务后端,业务后端再使用此token来check接口获取检测结果。注意:
- 一般由用户的操作来触发getToken调用,比如用户点击 “提交” 按钮动作
- 一个token只能使用一次
接口说明如下:
- 调用方式:watchmanInstance.getToken(businessId,callback)
- 接口描述:获取唯一凭证token
- 返回值:void
参数名 | 类型 | 是否必须 | 作用 |
---|---|---|---|
businessId | String | 是 | 业务id |
callback(token) | Function | 是 | 初始化完成后的回调函数,SDK对象将以回调函数参数的形式提供 |
获取查询token的示例代码如下:
this.data.watchmanInstance && this.data.watchmanInstance.getToken('YOUR_BUSINESS_ID', (token) => {
// 将token作为参数提交到服务端
})
可选接口
start接口
控制SDK开始监听页面事件,SDK将收集页面的事件信息。 接口说明如下:
- 调用方式:watchmanInstance.start();
- 返回值:void
- 接口参数:无
示例代码如下:
this.data.watchmanInstance && this.data.watchmanInstance.start()
stop接口
控制SDK结束监听页面事件。若需要再次监听页面事件,请再次调用start接口。(请注意:由于微信API限制,stop接口会停用当前页面所有的罗盘、加速器等监听事件,如果页面需要保持监听这些事件,请谨慎调用stop接口)
接口说明如下:
- 调用方式:watchmanInstance.stop();
- 返回值:void
- 接口参数:无
示例代码如下:
this.data.watchmanInstance && this.data.watchmanInstance.stop()
接入示例
const WATCH_MAN = require('./watchman.min.js')
Page({
data: {
watchmanInstance:null
},
onLoad: function () {
WATCH_MAN.init({
productNumber: 'YOUR_PRODUCT_NUMBER',
onload: (instance) => {
instance.start() // SDK开始监听页面行为事件
this.data.watchmanInstance = instance
}
})
},
submit: function (token) {
wx.request({
url: 'rise.do',
data: {
'token': token
},
success(res) {
// 处理点赞的响应
}
})
},
rise: function() {
this.data.watchmanInstance && this.data.watchmanInstance.getToken('YOUR_BUSINESS_ID', (token) => {
// 提交点赞业务请求
this.submit(token)
})
}
})