dcloudio / native-docs

uni小程序SDK & 5+ SDK 原生开发文档
Apache License 2.0
81 stars 74 forks source link

[bug]华为P40 鸿蒙系统下,开发基座和云端打包的APP,使用web-view打开的页面中获取后置摄像头时不传分辨率或传入一个相机不支持的分辨率,导致基座奔溃闪退,没有进入catch方法. #110

Open lx514622 opened 2 years ago

lx514622 commented 2 years ago

问题描述 华为P40 鸿蒙系统下,开发基座和云端打包的APP,使用web-view打开的页面中获取后置摄像头时不传分辨率或传入一个相机不支持的分辨率,导致基座奔溃闪退,没有进入catch方法.

复现步骤 [复现问题的步骤]

  1. app页面
    <template>
          <view>
              <web-view src="https://xxx"></web-view>
          </view>
    </template>
  2. web-view打开的页面

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <video id="video" controls autoplay muted></video>
        <script>
            navigator.mediaDevices
                .getUserMedia({
                    video: {
                        facingMode: {exact: 'environment'},
                        width: 123,
                        height: 456
                    }
                })
                .then((stream) => {
                    document.querySelector('#video').srcObject = stream
                }).catch((error) => {
                    console.error(error)
                })
        </script>
    </body>
    
    </html>

预期结果 catch方法捕获错误

实际结果 闪退时编辑器控制台没有任何报错 image

系统信息:

补充信息 [可选] [根据你的分析,出现这个问题的原因可能在哪里?]