前端【小程序】12-小程序基础篇【授权流程】【没有授权则跳转到设置页面】
微信小程序授权流程
以保存图片到本地为例,保存图片之前先进行授权校验
1 /** 2 * 授权设置,点击保存图片的时候,触发该事件,然后获取用户的授权信息,判断是否存在某项授权,不存在则提示,跳转到设置页面,否则直接执行 3 */ 4 authSetting () { 5 wx.getSetting({ 6 success: ({ authSetting }) => { 7 if (authSetting['scope.writePhotosAlbum'] === false) { 8 console.log('拒绝了授权') 9 // 拒绝了访问相册或者没有授权,调用授权API 10 wx.showModal({ 11 content: '请允许添加到相册!', 12 showCancel: false, 13 success: () => { 14 // 打开设置界面 15 wx.openSetting({ 16 success: ({ authSetting }) => { 17 console.log('authSetting: ', authSetting) 18 // 如果设置了允许访问相册,则调用保存 19 if (authSetting['scope.writePhotosAlbum']) { 20 this.saveImage() 21 } 22 // 如果跳转到设置界面,用户仍然没有授权,那么不在管了 23 } 24 }) 25 } 26 }) 27 } else { 28 // 如果设置允许访问相册, 则直接保存 29 this.saveImage() 30 } 31 } 32 }) 33 }, 34 /** 35 * 保存图片到本地 36 */ 37 async saveImage () { 38 try { 39 // 1、获取图片信息(下载到本地) 40 const { path } = await wx.getImageInfo({ 41 src: 'https://enjoy-plus.oss-cn-beijing.aliyuncs.com/uploads/qrcode.png' 42 }) 43 // 2、保存图片(wx.saveVideoToPhotosAlbum方法不能直接传网络地址, 需要通过wx.getImageInfo方法把网络图片处理到小程序本地) 44 await wx.saveVideoToPhotosAlbum({ filePath: path }) 45 wx.utils.toast('图片保存成功') 46 } catch (error) { 47 console.log(error) 48 } 49 }