继续改下index.js:
const { ServerToken,ClientToken } = require('./mongoose')//全局票据来源 const oauth = new OAuth(conf.appid, conf.appsecret, async function (openid) { return await ClientToken.getToken(openid) }, async function (openid, token) { return await ClientToken.setToken(openid, token) } )
写出来效果如下:完美
八、调用微信jssdk
准备:
1.获取jsconfig
index.html:
<cube-button @click='getJSConfig'>获取jsconfig</cube-button> async getJSConfig(){ console.log('wx',wx) const res = await axios.get('/getJSConfig',{ params:{ url:window.location.href } }) console.log('config',res) res.data.jsApiList = ['onMenuShareTimeline'] wx.config(res.data) wx.ready(function () { console.log('wx.ready......') }) }
index.js:
/** * 获取JSConfig */ router.get('/getJsConfig',async ctx => { console.log('getJSSDK...',ctx.query) const res = await api.getJsConfig(ctx.query) ctx.body = res })
如果能走到wx.ready(),说明这个时候可以使用别的功能那个api了。
2.获取网络状态
在wx.ready()后加,当然在ready()里加最为合理:
//获取网络状态 wx.getNetworkType({ success: function (res) { // 返回网络类型2g,3g,4g,wifi const networkType = res.networkType console.log('getNetworkType...', networkType) } })
获取到我是wifi环境,很完美!其余的jssdk调用方法也是如此!
还有一点,通常我们十前后端分离的开发项目,所以我把项目改成了前后端分离。
九、前后端分离的开发
1、新建了个weixin_pro的项目
2、将weixin项目的package.json复制到weixin_pro
3、分一个cube-ui目录为前端代码
4、分一个quiz目录为后端代码
5、weixin_pro下安装依赖,为后端依赖
6、cube-ui下安装依赖为前端依赖
7、分别启动前端代码后后端代码
运行效果如下:
十、代码地址
前后端分离前的代码:https://gitee.com/huqinggui/weixin.git