淋透丶
淋透丶
  • 发布:2023-07-20 11:37
  • 更新:2023-07-21 10:55
  • 阅读:375

【报Bug】安卓uni.scanCode 打开相册后返回,画面卡死,再次进入扫码黑屏,需要重启应用,官方Hello uni-app App可复现

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Win10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.4

手机系统: Android

手机系统版本号: Android 11

手机厂商: 魅族/华为/vivo/

手机机型: 魅族 17 / 华为P30Pro / 华为nova 9 SE / vivoZ5x / 魅族20Pro

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://m3w.cn/uniapp

示例代码:
<template>  
    <view>  
        <page-head :title="title"></page-head>  
        <view class="uni-padding-wrap uni-common-mt">  
            <view class="uni-title">扫码结果:</view>  
            <view class="uni-list" v-if="result">  
                <view class="uni-cell">  
                    <view class="scan-result">  
                        {{result}}  
                    </view>  
                </view>  
            </view>  
            <view class="uni-btn-v">  
                <button type="primary" @click="scan">扫一扫</button>  
            </view>  
        </view>  
    </view>  
</template>  
<script>  
    import permision from "@/common/permission.js"  
    export default {  
        data() {  
            return {  
                title: 'scanCode',  
                result: ''  
            }  
        },  
        methods: {  
            async scan() {  
                // #ifdef APP-PLUS  
                let status = await this.checkPermission();  
                if (status !== 1) {  
                    return;  
                }  
                // #endif  
                uni.scanCode({  
                    success: (res) => {  
                        this.result = res.result  
                    },  
                    fail: (err) => {  
                        // 需要注意的是小程序扫码不需要申请相机权限  
                    }  
                });  
            }  
            // #ifdef APP-PLUS  
            ,  
            async checkPermission(code) {  
                let status = permision.isIOS ? await permision.requestIOS('camera') :  
                    await permision.requestAndroid('android.permission.CAMERA');  

                if (status === null || status === 1) {  
                    status = 1;  
                } else {  
                    uni.showModal({  
                        content: "需要相机权限",  
                        confirmText: "设置",  
                        success: function(res) {  
                            if (res.confirm) {  
                                permision.gotoAppSetting();  
                            }  
                        }  
                    })  
                }  
                return status;  
            }  
            // #endif  
        }  
    }  
</script>  

<style>  
    .scan-result {  
        min-height: 50rpx;  
        line-height: 50rpx;  
    }  
</style>

操作步骤:

官方Uniapp Demo可复现,且再安卓11、12、13的各机型上也能复现
·下载安卓uniapp官方示例Hello uni-app 3.5.1版本
·启动应用时先禁用相册权限【这一步很重要,为了在扫码页面弹出权限】
·顶部菜单选择接口-设备-扫码,进入扫码模块示例页
· 点击扫一扫,授权相机权限,此时扫码功能正常
· 在扫码页面点击右上角的相册-弹出相册权限-授予相册访问权限,正常进入相册
· 不选图片,直接返回扫码页面,扫码页面直接卡死在进入相册前的画面
·再返回到扫码模块示例页,再次点击扫一扫,此时扫码功能无法使用,直接黑屏了

预期结果:

扫码功能正常

实际结果:

扫码功能卡死,再次进入黑屏,需要重启应用才能正常

bug描述:

安卓uni.scanCode() 调起相机后,在扫码页面,授权相册权限后打开相册,再返回,画面卡死,再次进入扫码黑屏,需要重启应用。附件里附带了复现视频

2023-07-20 11:37 负责人:DCloud_App_Array 分享
已邀请:
DCloud_UNI_Anne

DCloud_UNI_Anne

问题复现已转相关人员处理,已加分感谢反馈!

  • 兔田pekora

    你好,我也遇到了这个问题,请问现在已经有解决方法了吗?

    2023-10-11 12:13

要回复问题请先登录注册