某些微信浏览器(比如小米手机mix2 8.0,Android 6:ZTE 7 max)input标签file属性,无法选中图片或者调用相机

本文详细介绍了在微信小程序中如何初始化配置、检测和使用`wx.chooseImage`API进行图片选择,以及处理不同平台(iOS/Android)的拍照和图库选择兼容性问题,包括使用用户代理检测来调整输入文件的capture属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.初始化wxConfig (appId,timestamp,nonceStr,signatur,jsApiList)
window.localStorage.setItem('currentUrl', window.location.href);
2.wx.checkJsApi({
    jsApiList: ['chooseImage'] // 需要检测的JS接口列表
    success: function(res) {
    // 以键值对的形式返回,可用的api值true,不可用为false
 },});


3.wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    success: function (res) {
        var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
    }
});

4.wx.getLocalImgData({
        localId: req.localIds[0].toString(),
         success: function (res) {
                 const localData = res.localData;;
         }
 });
5.  let n = urlData.length;
      let u8arr = new Uint8Array(n);
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
      }
      return new Blob([u8arr], { type: mime });

1、multiple=“multiple” capture=“camera”
安卓: 可拍照可图库
iOS : 只可拍照
2、multiple=“multiple” 无capture
安卓: 只可拍照
ios :可拍照可图库
3、无multiple capture=“camera”
安卓:只可图库
ios:只可拍照
4、无multiple 无capture
安卓ios 都可拍照可图库,需要多选功能需要使用wx的sdk,需要配置公众号信息

解决方案

 //获取浏览器的userAgent,并转化为小写
    var ua = navigator.userAgent.toLowerCase();
    //判断是否是苹果手机,是则是true
    var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);
    if (isIos) {
        $("input:file").removeAttr("capture");
    };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值