uni-app ios-safari浏览器、uc浏览器等无法使用uni.chooseImage选择照片

uni-app ios-safari浏览器、uc浏览器等无法使用uni.chooseImage选择照片

操作步骤:

  • 直接使用uni.chooseImage

预期结果:

  • 可以像安卓系统一样正常使用

实际结果:

  • 无法使用

bug描述:

  • 无法使用图片选择,也没有任何反应
信息类别 信息内容
产品分类 uniapp/H5
PC开发环境 Mac
HBuilderX类型 正式
HBuilderX版本 3.2.9
浏览器平台 手机系统浏览器
项目创建方式 HBuilderX

更多关于uni-app ios-safari浏览器、uc浏览器等无法使用uni.chooseImage选择照片的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

未复现此问题。请提供您设备的详细信息 用示例代码hello uni-app能出现你的问题吗?

更多关于uni-app ios-safari浏览器、uc浏览器等无法使用uni.chooseImage选择照片的实战教程也可以访问 https://www.itying.com/category-93-b0.html


所有的ios都有问题 // 选择图片 async chooseImg() { await this.getQNImgUrl() let { image_url, token, upload_url } = this.QNInfo let { fromUser } = this uni.chooseImage({ count: 1, sizeType: [‘compressed’], sourceType: [‘album’, ‘camera’], success: async (res)=> { const { tempFiles } = res uni.showLoading({ title: ‘发送中…’ }) for(let file of tempFiles) { const suffix = file.name.substr(file.name.lastIndexOf(".") + 1) uni.uploadFile({ url: upload_url, filePath: file.path, name: ‘file’, formData: { ‘key’: shop/${(new Date).getTime()}.${suffix}, ‘token’: token }, success: (uploadFileRes) => { let path = image_url + JSON.parse(uploadFileRes.data).key console.log(path) // 发送图片 this.fitOnMsg(‘image’, path, fromUser) }, complete: ()=> { uni.hideLoading() } }) } setTimeout(()=> { uni.showLoading({ complete: () => { uni.hideLoading() } }) }, 1500) }, fail: (res)=> { console.log(‘调用相机失败’) } }) },

在iOS Safari和UC浏览器中,uni.chooseImage 无法正常使用,通常是由于浏览器兼容性或权限问题导致的。以下是可能的原因和解决方案:

  1. 浏览器兼容性:部分浏览器(特别是UC浏览器)对HTML5的File API支持不完整,可能导致 uni.chooseImage 无法触发。建议在官方兼容性列表中的浏览器(如Chrome、Safari)中测试。

  2. 权限问题:iOS Safari要求用户主动触发(如点击事件)才能调用文件选择功能。请确保 uni.chooseImage 是由用户的直接操作(例如按钮点击)触发的,而非页面加载自动调用。

  3. HTTPS限制:在iOS Safari中,某些API(如文件选择)可能要求页面运行在HTTPS环境下。如果是本地调试或HTTP环境,可能会被限制。请部署到HTTPS服务器再测试。

  4. 检查代码调用方式:确保调用方法正确,例如:

    // 正确示例:在按钮点击事件中调用
    chooseImage() {
        uni.chooseImage({
            count: 1,
            success: (res) => {
                console.log(res.tempFilePaths);
            }
        });
    }
回到顶部