问题描述:每次写到显示二维码的时候,可能会因为用户屏幕亮度过暗导致扫码困难,所以需要打开二维码的时候显示为最高亮度,关闭时恢复原来亮度。
实现逻辑:使用uni官方提供的接口 uni.getScreenBrightness获取屏幕亮度,再使用uni.setScreenBrightness接口设置屏幕亮度。
//获取屏幕亮度
getScreenBrightness(){
//注意uni.getScreenBrightness为异步接口,所以需要使用Promise封装为异步执行
return new Promise(function(resolve, reject){
uni.getScreenBrightness({
success: function (res) {
console.log('屏幕亮度值:' + res.value);
resolve(res.value)
},
fail: function (err) {
reject(0.5);//如果获取失败设置亮度为中间值
}
});
})
},
//修改屏幕亮度
updateScreenBrightness(valueNum){
uni.setScreenBrightness({
value: valueNum,
success: function () {
console.log('成功修改屏幕亮度为',valueNum);
}
});
},
调用
//打开二维码
openCode(){
this.getScreenBrightness().then(fucntion(res){
console.log('当前亮度为',res);
uni.setStorageSync('Brightness_key',res)
})catch((err) => {
uni.setStorageSync('Brightness_key',err)
});
this.updateScreenBrightness(1);//设置亮度为最高
},
//关闭二维码
closeCode(){
let Brightness=uni.getStorageSync('Brightness_key');
this.updateScreenBrightness(Brightness);//把屏幕亮度调回以前亮度
}