小程序 有的一些 需要 用户 先 给授权 才能调用其方法,比较 录音,保存图,位置信息等
wx.getSetting({
success(res) {
if (!res.authSetting['scope.camera']) { //获取摄像头权限
wx.authorize({
scope:'scope.camera',
success() {
console.log('授权成功')
}, fail() {
wx.showModal({
title: '提示',
content: '尚未进行授权,部分功能将无法使用',
showCancel: false,
success(res) {
if (res.confirm) {
console.log('用户点击确定')
wx.openSetting({ //这里的方法是调到一个添加权限的页面,可以自己尝试
success: (res) => {
if (!res.authSetting['scope.camera']) {
wx.authorize({
scope: 'scope.camera',
success() {
console.log('授权成功')
}, fail() {
console.log('用户点击取消')
}
})
}
},
fail: function () {
console.log("授权设置录音失败");
}
})
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
};
if (!res.authSetting['scope.record']) { //获取录音权限
wx.authorize({
scope: 'scope.record',
success() {
console.log('授权成功')
}, fail() {
wx.showModal({
title: '提示',
content: '尚未进行授权,部分功能将无法使用',
showCancel: false,
success(res) {
if (res.confirm) {
wx.openSetting({
success: (res) => {
if (!res.authSetting['scope.record']) {
wx.authorize({
scope: 'scope.record',
success() {
console.log('授权成功')
}, fail() {
console.log('用户点击取消')
}
})
}
},
fail: function () {
console.log("授权设置录音失败");
}
})
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
}
},
fail(res){
}
})
重点是openSetting,getSetting的使用,可以 看微信平台这方法的。 这里是最原始的获取权限的代码,完全有可优化的空间。 抛砖引玉。