橘子桔子
橘子桔子
  • 发布:2021-09-14 09:58
  • 更新:2021-09-17 11:47
  • 阅读:1006

【报Bug】ios13.3.1、ios14.6,手机safari浏览器中uni.chooseImage不生效

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 3.2.2

手机系统: iOS

手机系统版本号: IOS 14

手机厂商: 苹果

手机机型: Iphone6s

打包方式: 离线

操作步骤:
uni.chooseImage({  
   count: maxNum - filePaths.length,  
   extension: extension,  
   sizeType: ['compressed'], //限制只传压缩图,保证小于10Mb  
   success: res => {  
   },  
   fail: res => {  
      console.log('choose Image err:' + res)  
   }  
})

预期结果:

使用相册或相机,

实际结果:

无任何反应, 无报错

bug描述:

调用uni.chooseImage选择图片钩子不生效,毫无反应,控制台没报错,同样的代码在Android下正常运行。

uni.chooseImage({  
   count: maxNum - filePaths.length,  
   extension: extension,  
   sizeType: ['compressed'], //限制只传压缩图,保证小于10Mb  
   success: res => {  
   },  
   fail: res => {  
      console.log('choose Image err:' + res)  
   }  
})
2021-09-14 09:58 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

使用不同版本的 uni-app 测试表现是否相同?

另外 Safari 浏览器中表现是否正常?

  • 橘子桔子 (作者)

    目前是在3.2.2,3.2.3版本使用过, 都是一样的, ios的safari种没反应,

    2021-09-17 14:23

  • DCloud_UNI_GSQ

    回复 橘子桔子: 检查一下你的 extension

    2021-09-17 16:09

  • 橘子桔子 (作者)

    回复 DCloud_UNI_GSQ: 搞明白了,不是参数的问题, 我们项目需求,每个用户有资源上传的数量限制,在上传之前查询一次是否还能上传。 我把方法写在App.vue里, 用了new Promise()返回值, 之后如果还能上传就会调用uni.chooseImage(). 在这样的流程下就会导致choose Image无反应。


    当时如果把检测是否还有剩余资源写在当前页面, 不用Promise就没问题。


    应该算是个bug了,只会出现在ios的safari上的bug

    2021-09-17 16:17

  • DCloud_UNI_GSQ

    回复 橘子桔子: 苹果要求选择文件由用户直接触发(异步不可以),后续会分析一下这种情况能否判断出并触发失败。

    2021-09-17 17:45

  • 橘子桔子 (作者)

    回复 DCloud_UNI_GSQ: 并非异步打开choose Image的。 调用的基本代码结构如下。

    // app.vue

    async checkData(){ new Promise() }

    // page

    async MainFn(){

    await getApp().checkData():

    await getApp().choosePhoto();

    }

    2021-09-17 17:57

  • DCloud_UNI_GSQ

    回复 橘子桔子: 翻译一下 async 是什么意思

    2021-09-22 14:58

  • 哦嗯啊好吧行

    回复 DCloud_UNI_GSQ: 哈哈哈哈哈哈

    2022-02-22 11:02

该问题目前已经被锁定, 无法添加新回复