Golphin
Golphin
  • 发布:2020-04-08 07:05
  • 更新:2021-07-21 15:11
  • 阅读:1449

【报Bug】云打包ios端的image的onload() 函数不执行

分类:HBuilderX

详细问题描述

function showImg(url, dom) {  
                // document.getElementById('logMsg').value += '\n'+'func showImg开始展示上传的图片'+'\n';  
                plus.nativeUI.showWaiting();  
                // 兼容以“file:”开头的情况  
                // document.getElementById('logMsg').value += '\n'+url.toString()+'\n';  
                if (0 != url.toString().indexOf("file://")) {  
                    url = "file://" + url;  
                }  
                // document.getElementById('logMsg').value += '\n'+url.toString()+'\n';  
                //              var _div_ = document.getElementsByClassName("showimg")[0];  
                var _img_ = new Image();  
                // document.getElementById('logMsg').value += "构建image对象";  

                _img_.src = url; // 传过来的图片路径在这里用。  
                _img_.onclick = function() {  
                    // document.getElementById('logMsg').value += '\n'+'_img_.onclick'+'\n';  
                    plus.runtime.openFile(url);  
                };  

                _img_.onload = function(){  
                    var tmph = _img_.height;  
                    var tmpw = _img_.width;  
                    var isHengTu = tmpw > tmph;  
                    var max = Math.max(tmpw, tmph);  
                    var min = Math.min(tmpw, tmph);  
                    var bili = min / max;  
                    if (max > 1200) {  
                        max = 1200;  
                        min = Math.floor(bili * max);  
                    }  
                    tmph = isHengTu ? min : max;  
                    tmpw = isHengTu ? max : min;  
                    _img_.style.border = "1px solid rgb(200,199,204)";  
                    _img_.style.margin = "10px";  
                    _img_.style.width = "150px";  
                    _img_.style.height = "150px";  
                    _img_.onload = null;  
                    var quality = 100;  
                    if (_img_.fileSize > 500 * 1024) {  
                        quality = (500 * 1024 / _img_.fileSize) * 100;  
                    }  
                    // document.getElementById('logMsg').value += '\n'+'_img_.onload plus.io.resolveLocalFileSystemURL '+'\n';  
                    plus.io.resolveLocalFileSystemURL(url, function(entry) {  
                            entry.file(function(file) {  
                                console.log(file.size + '--' + file.name);  
                                // document.getElementById('logMsg').value += '\n'+file.size + '--' + file.name+'\n';  
                                canvasResize(file, {  
                                    width: tmpw,  
                                    height: tmph,  
                                    crop: false,  
                                    quality: quality, //压缩质量  
                                    rotate: 0,  
                                    callback: function(data, width, height) {  
                                        f1.push(data);  
                                        _img_.src = data;  
                                        console.log('压缩' + f1[0]);  
                                        // document.getElementById('logMsg').value += '\n'+'canvasResize  uploadImg(dom)前  '+'\n';  
                                        uploadImg(dom);  
                                        //                                      _div_.appendChild(_img_);  
                                        //                                      plus.nativeUI.closeWaiting();  
                                    }  
                                });  
                            });  
                        },  
                        function(e) {  
                            plus.nativeUI.closeWaiting();  
                            console.log(e.message);  
                        });  
                }  
            };

[内容]该段代码在function调用之后,安卓机器image的onload函数能够正常执行,但iOS的onload函数不执行;真机运行测试的时候,用windows连接ios设备,该函数也能够运行,但是真机打包之后,产生的ipa,安装的手机中,该函数就不执行了

重现步骤

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2020-04-08 07:05 负责人:无 分享
已邀请:
Golphin

Golphin (作者)

请问,怎么处理?

DCloud_iOS_XHY

DCloud_iOS_XHY

什么项目?请发一个完整的示例工程

7***@qq.com

7***@qq.com

最后怎么解决的

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