详细问题描述
[内容]
需求:手机端有多处用到下载功能;前段时间下载均是正常的,周五(2017-07-29)新打个sdk的包,然后下载均不能用,最初以为是hbuilder未更新的原因,更新前hbuilder版本是8.1.3.201705121932,此时真机连接环境测试时下载还是正常状态,打包后不正常;更新后版本8.8.0.201706142254,真机测试和打包测试下载均不正常,用官网hello5+的例子,将路径换为我正常使用的路径,下载也不正常
重现步骤
[步骤]
1.点击下载后,下载状态一直是0和2,一直显示“正在链接到服务器...”;
- 几分钟之后,状态会到4,返回的结果状态值为400;
说明:1. 下载的文件路径最深的是:_documents/fileName1/fileName2/file.json; 文件在10M以内;
- 检测最新版本的apk未设置路径,下载也是同样的问题
[结果]
下载失败
[期望]
官方技术人员尽快确定bug,给予回馈及修改完成时间,公司项目正在验收阶段,现在出问题后果很严重
运行环境
[系统版本]
hbuilder:8.8.0
[浏览器版本]
android:4.4——6.0均不正常
[IDE版本]
[mui版本]
附件
[代码片段]
说明:
- 注释的url1正常,url不正常,其他的下载和url的状况是一样的
- 问题重现例子可用hello5+的例子,换一个连接后台的url
/var url1= "https://download.fir.im/apps/575e737e00fc74706d000024/install?download_token=16c837f3f21ddb36b79e7ce11ff82303&release_id=58d4bdb8ca87a86fda00045c";/
var url = "http://api.fir.im/apps/latest/56fde13000fc743112000043?api_token=af44d85b6490e33bdbeb89cf8c672d43";
function download(url) {
var dtask = plus.downloader.createDownload( url, {
filename: "_downloads/"+new Date().getTime()+".apk"
}, function ( d, status ) {
if ( status == 200 ) { // 下载成功
mask && mask.close();
pContainer.style.display = 'none';
var path = d.filename;
plus.runtime.install( path);
} else {//下载失败
alert( "Download failed: " + status );
}
});
//下载进度弹出框
downTask(dtask, "version");
dtask.start();
}
function downTask (dtask, flag) {
console.info("下载的区分标识:"+flag);
if ("version" == flag) {
document.getElementById("p-title").innerHTML = "应用更新";
} else if("map" == flag){
document.getElementById("p-title").innerHTML = "地图下载";
} else if ("solid" == flag) {
document.getElementById("p-title").innerHTML = "镇街部件下载";
}
dtask.addEventListener( "statechanged", function(task,status){
alert("下载状态:"+task.state);
if(!dtask){return;}
switch(task.state) {
case 1: // 开始
downloadInfo.innerText = "准备下载...";
break;
case 2: // 已连接到服务器
downloadInfo.innerText = "正在链接到服务器...";
break;
case 3: // 已接收到数据
//版本更新时的操作
if ("version" == flag) {
if (!downloading) {
totalSize.innerText = (task.totalSize/1000000).toFixed(2) +'MB';
downloadInfo.innerText = "正在下载";
downloading = true;
}
if ( count%10 == 0) {
dSize.innerText = (task.downloadedSize/1000000).toFixed(2) +'MB';
mp.set(task.downloadedSize/task.totalSize);
}
count++;
} else if ("map" == flag){ //离线地图下载时的操作
if (!mdownloading) {
downloadInfo.innerText = "正在下载";
mdownloading = true;
}
if ( mCount%10 == 0) {
dSize.innerText = (task.downloadedSize/1000000).toFixed(2) +'MB';
mp.set(task.downloadedSize); ///task.mtotalSize
}
mCount++;
} else if("solid" == flag) { //离线部件下载操作
if (!sdownloading) {
downloadInfo.innerText = "正在下载";
sdownloading = true;
}
if ( sCount%10 == 0) {
dSize.innerText = (task.downloadedSize/1000000).toFixed(2) +'MB';
mp.set(task.downloadedSize); ///task.mtotalSize
}
sCount++;
}
break;
case 4: // 下载完成
if ("version" == flag) {
dSize.innerText = (task.downloadedSize/1000000).toFixed(2) +'MB';
} else if ("map" == flag) {
downloadInfo.innerText = "正在删除本地离线以及解压当前地图文件,整个过程需要几分钟,请耐心等候!";
dSize.innerText = (task.downloadedSize/1000000).toFixed(2) +'MB';
} else if ("solid" == flag) {
downloadInfo.innerText = "正在删除本地离线以及解压当前镇街部件,整个过程需要几分钟,请耐心等候!";
dSize.innerText = (task.downloadedSize/1000000).toFixed(2) +'MB';
}
break;
}
} );
}
[安装包]
联系方式
[QQ]
1433146410
[电话]
18612538548
1 个回复
海带
你的这个问题解决了吗