收藏
回答

部分android手机上 image标签无法显示网络图片

问题模块
API和组件

部分android手机的image标签显示不了网络图片,有没有什么办法显示出来?

最后一次编辑于  2017-09-25  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

5 个回答

  • 北极光
    北极光
    2017-09-25

    一部分android机型在本地选择图片之后,以base64的形式显示在<img>标签里会有无法显示的问题。

    主要原因在于照片的base64头部缺少元信息。我一般是这么处理的:

    if(obj.fileInput){
    var value = obj.fileInput.value;
       /**
        * fileInput.value的格式有如下两种:
        *     1.  C:\fakepath\image.png   (iOS)
        *     2.  C:\fakepath\image%A5558   (部分Android)
        *     第 1 种的能否正常发送。
        *     第 2 种由于其base64格式没有type类型,因此无法发送。需要手动在其base64中添加"data:image/jpeg:base64,"
        */
       var ext = value.substring(value.lastIndexOf('.') + 1, value.length);
       var type = /png|jpg|bmp|jpeg|gif/i.test(ext) ? 'suffix' : 'nosuffix';
       if (type == 'nosuffix') {
    var reader = new FileReader();
           reader.readAsDataURL(fileInput.files[0]);
           reader.onload = function (e) {
    var ret = e.target.result;
               var imgDataArr = ret.split(',');
               if (imgDataArr[0].indexOf('data:image') == -1) {
    if(imgDataArr.length > 1){
    obj.dataURL = 'data:image/jpeg;base64,' + imgDataArr[1];
                   }else{
    obj.dataURL = 'data:image/jpeg;base64,' + imgDataArr[0];
                   }
    }
    sendImgMsg(obj);
           }
    } else {
    sendImgMsg(obj);
       }
    return;


    你可以参考下


    2017-09-25
    赞同
    回复
  • Can🌴
    Can🌴
    2017-09-25

    你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码示例。

    2017-09-25
    赞同
    回复
  • 心
    2017-09-28

    魅族6,不需要复杂的代码,直接<image src='网络地址'> 就显示不出来。


    现在的做法是先下载到本地再显示。

    2017-09-28
    赞同
    回复
  • Can🌴
    Can🌴
    2017-09-28

    给个网络图片的地址

    2017-09-28
    赞同
    回复
  • Y_jh          ༽
    Y_jh ༽
    2018-05-03

    同问,同样的机型上,图片在不同一台手机也会有的显示,有的不显示。

    <image src='https://upload.carisok.com/uploads/systerm/20180130/201801301203024194.png@188w_188h.png'>

    2018-05-03
    赞同
    回复