uni-app h5在安卓系统调用图片上传(拍照或选择图片)功能后无反应,成功和失败回调均未执行

uni-app h5在安卓系统调用图片上传(拍照或选择图片)功能后无反应,成功和失败回调均未执行

示例代码:

uni.chooseImage({  
    count: 1, // 默认9  
    sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有  
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有  
    success(res) {  
        console.log(res)  
    },  
    fail(res) {  
        // _this.reminderMessage = '图片上传失败,请稍后再试';  
    }  
});

操作步骤:

在安卓系统,h5页面,点击唤起拍照和相册,选中之后,没有任何返回

预期结果:

在安卓系统,h5页面,点击唤起拍照和相册,选中之后,应该会返回当前图片的数据

实际结果:

在安卓系统,h5页面,点击唤起拍照和相册,选中之后,没有任何返回

bug描述:

鸿蒙系统与ios系统都是在唤起拍照和相册之后能拿到数据,但是安卓系统(h5)唤起拍照和相册之后,都没有跑到成功和失败回调中



| 信息类别       | 信息内容                           |
|----------------|------------------------------------|
| 产品分类       | uniapp/H5                          |
| PC开发环境     | Windows                            |
| PC操作系统版本 | Windows 10 专业版 19042.1348       |
| HBuilderX类型  | 正式                               |
| HBuilderX版本  | 3.2.9                              |
| 浏览器平台     | 手机系统浏览器                     |
| 浏览器版本     | 小米自带浏览器                     |
| 项目创建方式   | HBuilderX                          |

更多关于uni-app h5在安卓系统调用图片上传(拍照或选择图片)功能后无反应,成功和失败回调均未执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html

13 回复

我把上传后的路径,alert出来了 ,请查看附件中的视频 , 没复现到你的问题, 测试环境 小米浏览器

更多关于uni-app h5在安卓系统调用图片上传(拍照或选择图片)功能后无反应,成功和失败回调均未执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html


看一下我发的视频在下面

视频,和手机版本照片我给放到附件中了,我在成功和失败中都打了alert,浏览器是手机自带的

你这也不是小米浏览器啊,这不是oppo浏览器么

其他的oppo手机正常么,

测试只有一个小米手机,所以只知道有一个小米手机是不正常的,我这里只借到了这一个oppo

这个是有问题的哪个小米手机型号

oppo和小米我都试过了,没有问题,没复现到,所以你看看你的编辑器版本是否能升级或者降级一下

编辑器是最新的,那我降级下看看

你的版本是哪一个,我用你的哪个版本试试,我用的是3.2.9

回复 d***@ehsy.com: 我的是3.2.6

回复 小枫叶: 我降级到了3.2.6也是不行,用的上面哪个小米手机测得

这个问题通常是由于安卓系统浏览器对H5文件上传API的兼容性限制导致的。以下是几个关键排查点:

  1. 检查浏览器权限:确保浏览器已获得相机和相册访问权限。在安卓设置中为浏览器应用开启相机和存储权限。

  2. 使用input元素替代:在H5环境下,部分安卓浏览器对uni.chooseImage支持不完善。可以尝试使用原生input元素:

<input type="file" accept="image/*" capture="camera" @change="handleFile">
  1. 检查页面协议:确保页面通过HTTPS协议访问,部分安卓浏览器在HTTP协议下会限制媒体设备访问。

  2. 测试不同浏览器:在Chrome、Firefox等主流浏览器中测试,排除小米浏览器特定兼容问题。

  3. 添加超时处理:由于安卓系统可能延迟响应,可以添加超时机制:

setTimeout(() => {
  // 处理超时逻辑
}, 10000);
回到顶部