uni-app 红米手机进入扫码页面按Home键导致扫码功能无法正常使用
uni-app 红米手机进入扫码页面按Home键导致扫码功能无法正常使用
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | windows10 | HBuilderX |
示例代码:
uni.scanCode({
success: (res) => {
if(res.scanType=='QR_CODE') {
}else {
uni.showToast({
title: '识别失败,请重新扫码!',
icon: 'none',
duration: 2500
})
}
}
})
操作步骤:
- 打开扫码的一瞬间,按home键进入后台,再次打开APP时扫码页面为一片黑色,无法扫码,重启应用后恢复正常
预期结果:
- 可以正常使用扫码功能
实际结果:
- 页面黑屏,无法正常使用。返回后再次进入此页面还是黑屏
bug描述:
- 打开扫码的一瞬间,按home键进入后台,再次打开APP时扫码页面为一片黑色,无法扫码,重启应用后恢复正常。复现难度:中,需要多试几次
更多关于uni-app 红米手机进入扫码页面按Home键导致扫码功能无法正常使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 红米手机进入扫码页面按Home键导致扫码功能无法正常使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的应用生命周期管理问题。当APP进入后台时,摄像头资源被系统回收,但返回前台时未正确重新初始化扫码功能。
解决方案:
- 在页面生命周期中监听应用状态变化:
onShow() {
this.initScanCode()
},
onHide() {
// 可选的清理操作
},
methods: {
initScanCode() {
uni.scanCode({
success: (res) => {
if(res.scanType == 'QR_CODE') {
// 处理扫码结果
} else {
uni.showToast({
title: '识别失败,请重新扫码!',
icon: 'none',
duration: 2500
})
}
}
})
}
}
- 或者使用全局应用状态监听:
// App.vue
onShow: function() {
// APP从后台进入前台时触发
if(需要重新初始化扫码页面) {
// 通知页面重新初始化扫码
}
}