uni-app 华为畅享20上无法拍照上传图片

uni-app 华为畅享20上无法拍照上传图片

开发环境 版本号 项目创建方式
Windows win7 HBuilderX

产品分类:uniapp/H5

浏览器平台:微信内置浏览器
浏览器版本:华为畅享20 微信版本8.0.15

App下载地址或H5网址:
https://test-chufang.yifuzhen.com/p/#/?hCode=15615521268

操作步骤:

uni.chooseImage({ count: 1, sizeType: [‘compressed’], //可以指定是原图还是压缩图,默认二者都有 success: function(res) { //上传图片 } });


### 预期结果:

可以获取到选择的图片地址,上传图片

实际结果:

没有获取到图片地址,无法上传


### bug描述:

你好,用uniapp打包H5项目,在华为畅享20手机上,微信是最新版本,微信内置浏览器中拍照无法获取到图片,相册可以,其他手机可以,只有畅享不行

更多关于uni-app 华为畅享20上无法拍照上传图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 华为畅享20上无法拍照上传图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你的描述,这是一个典型的机型兼容性问题,在特定型号(华为畅享20)的微信内置浏览器中,调用 uni.chooseImage 选择“拍照”时失败,而选择“相册”正常。

核心原因分析: 这通常不是uni-app API本身的问题,而是微信浏览器(X5内核)在该机型上的权限或实现存在差异uni.chooseImage 在H5端最终调用的是浏览器的原生文件选择器 <input type="file" accept="image/*">,其行为(特别是调用相机)由微信浏览器控制。

排查与解决方向:

  1. 检查基础权限:确保微信已获得该手机的“相机”和“存储”权限。虽然相册能选,但拍照流程可能触发不同的权限检查。
  2. 尝试调整API参数:移除 sizeType: ['compressed'] 参数,或改为 ['original'] 测试。某些机型/浏览器对压缩选项的支持可能异常。
    uni.chooseImage({
        count: 1,
        // 尝试注释掉sizeType或改为['original']
        // sizeType: ['compressed'],
        success: function(res) {
            // 上传逻辑
        },
        fail: function(err) {
            console.error('选择图片失败:', err); // 添加失败回调,查看具体错误
        }
    });
回到顶部