问题:当用户第一次进入小程序,点击授权按钮后,点了拒绝,再次点击不会出现授权页面,只有再次进入小程序的时候 才会出发请求授权
案例:假如我们要实现一个保存图片的功能,第一次点击的时候弹起授权,用户点击的拒绝,当用户再次点击的时候,如何继续弹出授权?
实现步骤:
1、wx.getSetting 判断用户是否开启授权相册
2、wx.saveImageToPhotosAlbum已经授权,直接保存图片
3、wx.authorize,如果没有授权,弹出授权框,点击确定之后,保存图片,
点击确定之后,会走success,保存图片
点击拒绝之后,会走fail (以后就不会弹出授权框了)
案例:假如我们要实现一个保存图片的功能,第一次点击的时候弹起授权,用户点击的拒绝,当用户再次点击的时候,如何继续弹出授权?
实现步骤:
1、wx.getSetting 判断用户是否开启授权相册
2、wx.saveImageToPhotosAlbum已经授权,直接保存图片
3、wx.authorize,如果没有授权,弹出授权框,点击确定之后,保存图片,
点击确定之后,会走success,保存图片
点击拒绝之后,会走fail (以后就不会弹出授权框了)
再点击拒绝之后
·fail中需要让他弹出授权框(由于wx.openSetting必须通过按钮触发,所以我们当用户拒绝的时候添加一个弹出框(wx.showModal),当用户点击确定的时候弹出授权框)
wx.getSetting({ success(res) { console.log(that.tempFilePath) // 如果没有则获取授权 if (!res.authSetting['scope.writePhotosAlbum']) { wx.authorize({ scope: 'scope.writePhotosAlbum', success(res) { // console.log wx.saveImageToPhotosAlbum({ filePath: that.tempFilePath, success() { wx.showToast({ title: '保存成功' }) }, fail() { wx.showToast({ title: '保存失败用户点击取消' }) } }) }, fail() { wx.showModal({ title: '提示', content: '若点击不授权,将无法使用保存图片功能', cancelText: '不授权', cancelColor: '#999', confirmText: '授权', confirmColor: '#f94218', success(res) { if (res.confirm) { wx.openSetting({ success(res) { console.log(res.authSetting) } }) } else if (res.cancel) { console.log('用户点击取消') } } }) } }) } else { // 有则直接保存 wx.saveImageToPhotosAlbum({ filePath: that.tempFilePath, success() { wx.showToast({ title: '保存成功' }) }, fail() { wx.showToast({ title: '保存失败' }) } }) } } })