刨地瓜
刨地瓜
  • 发布:2023-06-29 10:27
  • 更新:2023-07-20 10:45
  • 阅读:331

【报Bug】安卓APP下,uni.scanCode功能异常

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: Alpha

HBuilderX版本号: 3.8.6

手机系统: Android

手机系统版本号: Android 11

手机厂商: 小米

手机机型: 红米note10 pro

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

使用官方DEMO项目能复现,官方DEMO代码

<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>  

操作步骤:

1 点击“扫一扫”, 跳转到扫码界面,第一次进入需要获取用户授权,获取到拍照权限与相册权限后,取消扫码
2 再点击“扫一扫”,进入扫码页,跳转到立即点击界面右上角“相册”按钮,点击时需要相册功能还未完全加载成功。
3 从相册选择页返回,此时相机功能异常,要么是黑屏,要么是显示固定画面。

预期结果:

相机扫码功能正常运行

实际结果:

相机扫码功能异常

bug描述:

调用uni.scanCode后,APP会进入到扫码页,在该页相机功能还未加载成功时,快速点击右上角“相册”按钮,跳转到照片选择界面,然后再返回到扫码页时存在,相机功能异常的情况,此时相机显示区域的拍摄内容固定显示为跳转到相册页时的画面,无法正常扫码。且退出扫码界面后,再重新调用scanCode进入扫码界面,相机功能会加载失败,变成黑底画面。
手速不快可以多试几次 ,非常容易复现。且这个问题可能与安卓系统版本无关。

2023-06-29 10:27 负责人:DCloud_Android_YJC 分享
已邀请:
刨地瓜

刨地瓜 (作者)

这个功能在之前的hbuilerX版本也是异常的

淋透丶

淋透丶

同有这个问题

要回复问题请先登录注册