以小程序保存图片到本地为例
一、先在js中创建按钮初始状态变量
Page({
data: {
saveShareBtn: false,
}
},
二、在wxml中添加按钮
注意:bindopensetting="authOpen"是当前授权结果的回调函数(在第四中查看代码)
<block wx:if="{{saveShareBtn == true}}">
<button disabled="{{shareBtn}}" bindtap="saveShareCode" >保存图片处理函数saveShareCode</button>
</block>
<block wx:else>
<button disabled="{{shareBtn}}" open-type="openSetting" bindopensetting="authOpen">保存图片打开授权</button>
</block>
三、判断授权按钮状态
1、写一个判断授权按钮状态的函数
2、当第一次进入会弹出是否允许授权,如果点了允许或禁止会在bindopensetting="authOpen"的回调函数(见第四)中重新设置按钮状态
3、当点了禁止再次点击按钮会弹出微信权限设置界面,在界面中允许或禁止都会在bindopensetting="authOpen"的回调函数(见第四)中重新设置按钮状态
isAuth: function (res) {
let that = this;
//判断图片权限
wx.getSetting({
success(res) {
if (res.authSetting['scope.writePhotosAlbum']) {
that.setData({saveShareBtn: true})
}else{
wx.authorize({
scope: 'scope.writePhotosAlbum',
success(res) {
console.log('允许保存图片');
}
})
}
},
})
}
2、在js的onShow中引入上面的isAuth函数,您也可以在其他需要授权的地方引入,非必须在onShow中引入。
onShow:function(){
let that = this;
that.isAuth()
}
四、授权回调函数
(当第一次禁止后需要重新打开),可以判断按钮状态,是上面第二步中的按钮选择使用哪个按钮
//判断授权结果
authOpen: function (res) {
let that = this;
if (res.detail.authSetting['scope.writePhotosAlbum']) {
that.setData({ saveShareBtn: true })
} else {
that.setData({ saveShareBtn: false })
}
},
网友评论