bwj2022
bwj2022
  • 发布:2022-07-13 08:21
  • 更新:2022-07-13 16:23
  • 阅读:254

【BUG】大BUG ios正式包img无法预览图片

分类:HBuilderX

产品分类: HbuilderX

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: m1

HBuilderX版本号: 3.4.18

App下载地址或H5⽹址: https://apps.apple.com/us/app/%E5%924%E5%92%94%E7%BA%A6%E6%8B%8D%E5%B9%B3%E5%8F%B0/id1610751324?ppid=b3c8a1c2-dd79-4c58-84d7-e32c1b9feae7

示例代码:
var imageUtil_Selectors = {  
      // 开始选择图片  
    galleryImg: function(self) {  
        plus.gallery.pick(function(e) {  
            var zm = 0;  
            setTimeout(file, 200);  

            function file() {  
                plus.io.resolveLocalFileSystemURL(e.files[zm], function(entry) {  
                                       // 调用压缩方法  
                    imageUtil_CompressUtil.compressImage(self, entry.toLocalURL(), entry.name);  
                }, function(e) {  
                    plus.nativeUI.toast("读取拍照文件错误:" + e.message);  
                });  
                zm++;  
                if (zm < e.files.length) {  
                    setTimeout(file, 200);  
                }  
            }  

        }, function(e) {  
            console.log("取消选择图片");  
        }, {  
            filename: "_doc/camera/",  
            filter: "image",  
            multiple: true  
        });  

    }  
}  
var imageUtil_CompressUtil = {  
    //压缩图片  
    compressImage: function(self, url, filename) {  
              //_doc/upload/F_ZDDZZ-1467602809090.jpg   
        var name = "_doc/upload/" + "" + filename;   
        console.log('选取的图片' + name);  
        plus.zip.compressImage({  
                src: url, //src: (String 类型 )压缩转换原始图片的路径    
                dst: name, //压缩转换目标图片的路径    
                quality: 20, //quality: (Number 类型 )压缩图片的质量.取值范围为1-100    
                overwrite: true //overwrite: (Boolean 类型 )覆盖生成新文件    
            },  
            function(event) {  
                //uploadf(event.target,divid);    
                var path = name; //压缩转换目标图片的路径    
                //event.target获取压缩转换后的图片url路    
                //filename图片名称    
                imageUtil_UpdatePhotosUtil.saveImage(self, event.target);  
            },  
            function(error) {  
                plus.nativeUI.toast("压缩图片失败,请稍候再试");  
            });  
    }  
}  
var imageUtil_UpdatePhotosUtil = {  
    saveImage: function(self, url) {  
        console.log("图片地址" + url);  
        var $ = self.$;  
        var app = self.$app;  
        var array = new Array();  
        array.push(url);  
        console.log(self.photos);  
        var photos = [].concat(_toConsumableArray(self.photos), _toConsumableArray(array));  
                // photos会再页面显示出来  
        self.$setState({  
            photos: photos,  
        });  
        // console.log(photos);  
    }  
}  
// 图片预览的代码  
            <div class="block block-strong margin radius-10  padding-bottom padding-top">  
                    <div class="item-inner">  
                        <div class="item-input-wrap">  
                            <div class="row" style="float: left;">  
                                <div>  
                                    {{#each photos}}  
                                        <div class="image-item">  
                                            <img src="{{this}}" />  
                                            <i class="fa fa-times-circle image-delete-icon" @click="delImg"  
                                                data-index="{{@index}}"></i>  
                                        </div>  
                                    {{/each}}  
                                </div>  
                                <div class="image-item" @click="showActionSheet"></div>  
                            </div>  
                        </div>  
                    </div>  
                </div>

操作步骤:

将我提供的代码运行起来,打个ios 生产包,

预期结果:

添加图片后能够在页面预览

实际结果:

发布时,选择图片后预览不出来,但是可以上传图片,后台能接收到图片,说明图片地址没问题,区别是img的src读取图片在ios有差异的

bug描述:

选择图片并压缩然后生成_doc的图片路径,在真机测试和测试包上都能预览到图片,生产包就不行;是放在image的src上
后来我换成plus.io.convertLocalFileSystemURL这个转一下,变成'file://'+ plus.io.convertLocalFileSystemURL(url)这个路径也展示不了

2022-07-13 08:21 负责人:无 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

请上传一个能重现问题的测试工程

  • bwj2022 (作者)

    就很简单啊,给img标签的src赋值,_doc或者file:这两种图片地址在生产包上就是不显示图片,测试包可以显示图片

    2022-07-13 15:34

bwj2022

bwj2022 (作者) - www

我自己解决了,你们这个太坑了,manifest改成这个配置就好了
"runmode" : "liberate",

要回复问题请先登录注册