1、引入sdk&&必要的配置
在每一个需要获取设备信息的页面引入SDK。比如:在pages/index/index.js中,先在文件顶部引用sdk:
import FMAgent from '../../fmsdk/fm-xxx-es.min.js'
配置FMAgent
partnerCode为必要参数,appName和channel为可选参数,如果没有传入则初始化时会抛出异常。
在app.js中:
App({
......
globalData: {
......
_fmOpt: {
partnerCode: "", // 请填入您的partner code
channel:"", // 请填入你的channel
}
}
})
2、获取blackbox
在设备指纹对象初始化完成后,就可以获取设备信息了。
var that = this
var fmagent = new FMAgent(app.globalData._fmOpt) // 这里需要传入一些必要配置
fmagent.getInfo({
page: that, // that为当前页面对象
openid: '', // 如果openid为空或者undefined,请勿加密上传,传空字符串即可
success: function (res) {},// 成功回调,res为blackbox字符串
fail: function (res) {},// 失败回调,res为各种exception对象
complete: function (res) {}
})
注意:在提交blackbox时,请选择表单提交,避免blackBox被urlEncode,导致查询结果异常
API参数说明
参数 | 类型 | 描述 | 示例 | 是否必填 |
---|---|---|---|---|
page | Object | 当前所在的page对象或component对象 | that | 是 |
openid | string | 加密后的用户openid(加密算法可以随意选择,我们建议使用MD5或者SHA256)(切记不可以传自定义默认值,没有值请传空字符串,否则会导致碰撞) | ef54040ea9cb5998230777ec7240b21e400a7ab5272af07a9ca2ed958fe66157 | 是 |
getInfoType | string | 获取blackbox的模式('1':优先使用缓存的blackbox,'2':优先使用实时采集的blackbox,'3':优先使用未过期的blackbox至过期,默认模式为'1') | '1' | 否 |
timeout | Integer | 获取blackbox超时(默认2500,包括采集和发送请求的总时长,范围:2500-16000) | 6000 | 否 |
success | function | 获取成功回调 | function(res) {/返回值为string类型,即black_box的值/} | 是 |
fail | function | 获取失败回调 | function(res) {/返回值为string类型,即black_box的值/} | 是 |
complete | function | 获取完成回调 | function(res) {/返回值为string类型,即black_box的值/} | 否 |
fail的原因可能为:
传入的timeout不是数字类型;
注意:
blackbox存在有效期,所以请不要自行对blackbox做缓存,在我们SDK内部有缓存机制,所以请在需要blackbox的地方,调用getInfo接口即可。