因为最近微信的wx.getUserInfo接口进行了修改,在开发版本和体验版本中无法自动拉起获取授权信息的提示,官方文档中推荐的方式为使用按钮,让用户主动授权:
wx.getUserInfo接口
此接口有调整,使用该接口将不再出现授权弹窗,
请使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作
据说是小程序官方认为这种在用户不知情的情况下,弹出对用户信息的获取方式,对用户十分不友好,大概率之后也不会支持这种自动拉取的方式。
所以现在大家普遍开始采用欢迎页的方式引导用户授权,即用户首次进入小程序,检查登录状态,跳转到欢迎页,带上一个按钮,用来获取授权信息(下面是我的项目图):
这样的方式是可以理解的,但是对于我这种强迫症,我还希望更简洁的操作,你要跳转一个页面,再点击再跳转回来,真的难受……
所以,想了一个方法,结合iView Weapp的Modal 对话框来实现,
先看官方示例图片:
这是iView Weapp的自定义按钮对话框:
//在 .json 中引入组件
"usingComponents": {
"i-modal": "../../dist/modal/index"
}
<i-modal title="支付" visible="{{ visible3 }}" actions="{{ actions3 }}"
bind:click="handleClick3">
<view>请选择支付方式</view>
</i-modal>
//js文件
data:{
visible3: false,
actions3: [
{
name: '现金支付',
color: '#2d8cf0',
},
{
name: '微信支付',
color: '#19be6b'
},
{
name: '取消'
}
],
}
handleOpen3 () {
this.setData({
visible3: true
});
},
handleClick3 ({ detail }) {
const index = detail.index;
if (index === 0) {
$Message({
content: '点击了现金支付'
});
} else if (index === 1) {
$Message({
content: '点击了微信支付'
});
}
this.setData({
visible3: false
});
},
这个其实就比较好理解了,我们可以使用两个按钮,一个取消一个授权,在授权按钮中使用getUserInfo事件。
最近会抽出时间来改一下首页,改完再写。