自定义了一个授权弹窗组件,里面有个显示或者关闭弹窗的方法openFn,在进入微信小程序首页的时候会判断用户是否授权获取用户信息,如果没有,会调用组件的openFn方法弹窗提示用户授权。
首页在onready里面获取组件实例,代码如下:
onReady() {
this.authorize = this.selectComponent('#authorize')
console.log(this.authorize,'onready+++打印组件实例')
},
然后在onload里面调用一个方法判断用户是否授权,代码如下:
isAuthorize: function () {//判断用户是否授权
let that = this;
wx.getSetting({
success(res) {
if (res.authSetting && res.authSetting['scope.userInfo']) { //用户有授权,直接调用函数进行登录
that.authorizeSuccFn()
} else { //用户未授权,弹窗引导用户授权
that.setData({
isOpensetting: false,
authorizeMsg: '亲,该微信小程序需要授权用户信息才能使用'
})
that.authorize.openFn()
}
}
})
},
自己在本地调试工具和手机上测试都是没有问题,但是线上却一直报错,求大神指导下是怎么回事。报错信息:
微信小程序开发问题解答
微信小程序开发者回答:
感觉可能是个时序问题。#authorize 是一开始就存在于页面中的吗?还是某次 setData 引入的?
本文网址:http://www.91bianli.com/weixinxiaochengxu/19302.html