问题如题,代码如下
var fileEntry = '拍照图片,转换为 FileEntry 对象';
var wt = plus.nativeUI.showWaiting('正在上传,请稍后...');
var _UPLOAD_ = '你的上传地址';
var task=plus.uploader.createUpload(_UPLOAD_,
{
method:"POST",
timeout: 60, // 60秒过期
retry: 0
},
function(upload ,status){
//上传完成
if(status==200){
wt.close();
plus.nativeUI.toast("上传成功!");
//var dataObj= JSON.parse(upload.responseText);
//var html = "<input type='hidden' name='photo[]' value='"+dataObj.filename+"' />";
//$('.plug_uploader_form').append(html);
}
else{
wt.close();
plus.nativeUI.toast("上传失败:"+status);
}
plus.uploader.clear(upload.state);
});
// 监听上传任务状态
function onStateChanged( upload, status ) {
if ( upload.state == 4 && status == 200 ) {
plus.nativeUI.toast( "上传成功!" );
console.log( JSON.stringify(upload) );
wt.close();
// 上传完成
}else {
plus.nativeUI.toast( '已上传' + upload.uploadedSize + 'KB/' + upload.totalSize + 'KB');
console.log( JSON.stringify(upload) );
}
}
task.addData("uid",getUid());
plus.zip.compressImage({
src:fileEntry.toLocalURL(),
dst:'_www/' + fileEntry.name,
overwrite: true,
quality:30,
width:"30%"
},
//压缩成功
function( event ) {
var filePath = event.target; // 压缩转换后的图片url路径,以"file://"开头
task.addFile(filePath ,{key: 'file'});
task.addEventListener( "statechanged", onStateChanged, false );
task.start();
},
//压缩失败
function(error) {
var filePath = fileEntry.toLocalURL(); // 原图地址
task.addFile(filePath ,{key: 'file'});
task.addEventListener( "statechanged", onStateChanged, false );
task.start();
});
这段代码在Hbuilder使用真机调试时,运行OK,但是打包后上传时一直loading
请问有谁遇到这种问题,怎么解决的!??求大牛解惑
3 个回复
小资电脑
1 相同的代码 只要是真机调试就正常,重新打包安装后,就出错吗?如果是这样的话,就是打包的问题了,检查下打包的配置。
2.在代码里添加几个alert语句,分段确定运行到哪一步出错的,比如:压缩正常完成没有,上传开始了没,服务器上接收到了没有。
DCloud_heavensoft
打包配置时是否选中了所需要的功能模块,比如上传模块、压缩模块。
真机运行时所有的模块都是在调试基座里的,但打包时,打哪个模块是在manifest里配置的。
luddite
这就是他们的bug,极其不稳定,所以用这个开发app需谨慎!