initJssdk (util, api, data) {
return new Promise((resolve, reject) => {
const apiSrc = api.wxminiappWxAppGetSign
const params = {
url: data.link
}
uni.showLoading()
util.postData.call(this, apiSrc, params, 'POST', function (res) {
if (res) {
const data = res.data.data
jWeixin.config({
debug: true, // 开启调试模式
appId: configAll.config.officialAccountAppId, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名
jsApiList: [
'openLocation', // 使用微信内置地图查看位置接口
'getLocation' // 获取地理位置接口
], // 必填,需要使用的JS接口列表
success: (res) => {
console.log(res, 'jWeixin/success')
resolve(res)
},
fail: (err) => {
console.log(err, 'jWeixin/fail')
reject(err)
}
})
jWeixin.ready(function (res) {
console.log(res, '-------------------------jWeixin.ready----------------------')
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
})
jWeixin.error(function (res) {
console.log(res, '-------------------------jWeixin.error----------------------')
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
})
}
uni.hideLoading()
}, function (err) {
uni.hideLoading()
uni.showToast({ title: err.errMsg, icon: 'none', duration: 1500 })
reject(err)
})
})
}