小程序pc端图片上传没反应?

手机端一切正常

使用Vant Weapp组件库(版本:"@vant/weapp": "^1.10.18")
image.png
image.png
点击上传按钮,没反应,不输出11111111111111

点击删除,成功输出222222222
image.png
image.png


**
补充····································································**
我看了一下源码中的uploader组件的accept属性默认是image,所以默认调用的是wx.chooseMedia,
我输出一下报错信息,在pc端调用上传就会报以下这个错:
image.png

再输出了一下源码中wx.chooseMedia的配置maxDuration(拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册)的值:
1688089531158.jpg

去微信开放社区查看相应报错提问发现:
image.png

阅读 4.6k
2 个回答

看看 before-read 绑定的函数上做了什么业务处理。可能是没有通过 before-read 绑定的函数。


Edit

看了一下 VantWeappuploader 组件源码, 调用的是 chooseMediachooseMessageFile 的两个微信 API。
如果没有指定 accept 属性的话,默认调用的是 wx.chooseMessageFile 这个API,但是微信PC端暂时还不支持这个API,不过 wx.chooseMedia 这个API是支持的,所以指定一下 accept="image" 看看是否可以实现图片上传功能。

相关阅读


Edit2

wx.chooseMedia 在文档上显示 maxDuration 属性支持范围是 3 ~ 60 秒,但实际PC端只支持 10 秒以内。
vant-uploader 组件的 props 下来的 chooseMedia 预设值 设置了 maxDuration 的默认值为 60 了。
所以手动绑定 <vant-uploader> 组件的 max-duration 属性值为 10 以内看看能否解决问题,也可以改源码但是不怎么建议。

相关阅读


Edit3

有其他小伙伴反馈在 Mac 平台使用 wx.chooseMedia 这个API会抛出 fail function cannot run on service 这样的异常。
但是我这边并没有Mac,所以只能猜测是不是小程序的基础库版本太低 或者 微信客户端没跟新?

同时我也在微信社区刷到了类似的问题,官方回复是:

mac端目前暂不支持此功能。

但是同时文档上显示的,往回找了一下最近的更新历史都没有提什么时候支持的。

所以在没有办法的情况下只能兜底做一下兼容?如果不支持 wx.chooseMedia 就改用 wx.chooseImage,这样也许可以解决问题。

相关阅读
chooseMedia在MAC系统中无法使用? | 微信开放社区

<vant-uploader> 组件的 max-duration 属性值设置在3~10之间

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题