原因:
阿帕奇故障。
有问
- 发布:2021-01-13 17:09
- 更新:2021-01-16 12:08
- 阅读:870
最佳回复
这个问题很明确:
-
使用同样的的Hello 5+ 代码测试。
-
同样的wgt文件,不同的服务器地址:
我们的测试地址 :
http://47.104.xxx.xxx:13888/examples/android.wgt 有下载进度
你的测试地址:
https://xxxx.com/public/ccc/android.wgt 无下载进度
如你所说 你的api 没有返回 content-length字段。
无法知道待下载资源的总大小,自然无法知道资源的下载进度。
你需要调整一下你的apache服务器配置
var url = "http://47.104.xxx.xxx:13888/examples/android.wgt";
// var url = "https://xxx.com/public/ccc/android.wgt";
var options = {timeout: 2,
retry: 0,
retryInterval: 0 };
dtask = plus.downloader.createDownload( url, options );
dtask.addEventListener( "statechanged", function(task,status){
if(!dtask){return;}
console.log(task.state);
switch(task.state) {
case 1: // 开始
outLine( "开始下载..." );
break;
case 2: // 已连接到服务器
outLine( "链接到服务器..." );
break;
case 3: // 已接收到数据
outSet( "下载数据更新:" );
outLine( task.downloadedSize+"/"+task.totalSize );
break;
case 4: // 下载完成
outSet( "下载完成!" );
outLine( task.totalSize );
break;
}
} );
outSet( "创建下载任务成功!" );
function createDownloadTask(){
if ( dtask ) {
outLine( "下载任务已创建!" );
return;
}
var url = "http://47.104.xxx.xxx:13888/examples/jita.mp4";
var options = {timeout: 2,
retry: 0,
retryInterval: 0 };
dtask = plus.downloader.createDownload( url, options );
dtask.addEventListener( "statechanged", function(task,status){
if(!dtask){return;}
console.log(task.state);
switch(task.state) {
case 1: // 开始
outLine( "开始下载..." );
break;
case 2: // 已连接到服务器
outLine( "链接到服务器..." );
break;
case 3: // 已接收到数据
outSet( "下载数据更新:" );
outLine( task.downloadedSize+"/"+task.totalSize );
break;
case 4: // 下载完成
outSet( "下载完成!" );
outLine( task.totalSize );
break;
}
} );
outSet( "创建下载任务成功!" );
}
你用Hello 5+测试一下
downloadImage: function () {
var url = "http://47.104.xxx.xxx:13888/examples/jita.mp4";
var options = {timeout: 2,
retry: 0,
retryInterval: 0 };
var dtask = plus.downloader.createDownload( url, options );
dtask.addEventListener( "statechanged", function(task,status){
if(!dtask){return;}
console.log(task.state);
switch(task.state) {
case 1: // 开始
console.log( "开始下载..." );
break;
case 2: // 已连接到服务器
console.log( "链接到服务器..." );
break;
case 3: // 已接收到数据
console.log( "下载数据更新:" );
console.log( task.downloadedSize+"/"+task.totalSize );
break;
case 4: // 下载完成
console.log( "下载完成!" );
console.log( task.totalSize );
break;
}
});
dtask.start();
}
uni-app 用这个代码试试
我用hx 3.0.7 未复现问题
DCloud_Android_DQQ
回复 有问: 服务器当然会有配置文件来配置 不同类型的文件策略。 你可以试试把wgt的后缀名改成mp4试试。 至于更多的 服务器配置细节。建议你系统的学习一下。
2021-01-16 11:55
DCloud_Android_DQQ
回复 有问: 好的,已修改
2021-01-16 12:06
有问 (作者)
我知道了,是阿帕奇的问题。但是并没有发现是什么原因。本地把gzip压缩模块开启又关闭了一下,重启后突然就可以了。服务器上还是不行。有空我重装下再看吧。
另外就是下载监听的进度有点慢的太多了,希望再调快一些。或者不要让它下载完就安装,应该在状态3里判断是否下载到100%进度再安装。目前我在状态3里判断下载进度>=100再进行安装也不行,只要它下载完就会自动安装了。
2021-01-16 12:57