l***@stander-info.com
l***@stander-info.com
  • 发布:2024-11-25 18:31
  • 更新:2024-11-25 18:31
  • 阅读:83

【报Bug】plus.downloader.createDownload 下载最新的文件plus.runtime.install 进行安装,出现偶发的不调用安装

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 家庭中文版 21H2 22000.2538

HBuilderX类型: 正式

HBuilderX版本号: 4.29

手机系统: Android

手机系统版本号: Android 11

手机厂商: 三星

手机机型: 未知

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

downloader(downloadUrl) {
let that = this;
// console.log(downloadUrl);
that.showper = true;
plus.downloader.clear(); //清除下载任务
let dtask = plus.downloader.createDownload(
downloadUrl, {
filename: that.vuex_config.UrlDown_apk
},
(d, status) => {
// 下载完成
if (status == 200) {
uni.showToast({
title: " Download file sucess "+d.filename,
mask: false,
duration: 1000,
});
let installurl=plus.io.convertLocalFileSystemURL(d.filename);
uni.showToast({
title: " File local path "+installurl,
mask: false,
duration: 3500,
});
plus.runtime.install(installurl, {}, {},
(error) => {
uni.showToast({
title: that.$t("common.InstallFailed"),
mask: false,
duration: 3500,
});
}
);
} else {
uni.showToast({
title: that.$t("common.InstallFailed"),
mask: false,
duration: 3500,
});
plus.downloader.clear(); //清除下载任务
}

                }  
            );  

            dtask.addEventListener("statechanged", (download, status) => {  
                switch (download.state) {  
                    case 1:  
                        uni.showToast({  
                            title: that.$t("common.Downloading"),  
                        });  
                        break;  
                    case 2:  
                        // console.log("链接到服务器...");  
                        break;  
                    case 3:  
                        this.downcurrentSize = download.downloadedSize;  
                        this.downtotalSize = download.totalSize;  
                        this.percent = parseInt(  
                            (parseFloat(this.downcurrentSize) /  
                                parseFloat(this.downtotalSize)) * 100);  
                        // console.log("下载文件百分比..." + this.percent);  
                        //显示的回调函数  
                        // if(cb2) cb2()  
                        break;  
                    case 4:  
                        // console.log("监听下载完成");  
                        plus.nativeUI.closeWaiting();  
                        //回调函数  
                        // if(cb2) cb2()  
                        break;  
                }  
            });  
            dtask.start();  
        }

操作步骤:

因为是偶发现象,无法准确的重现步骤

预期结果:

应该要正常的都能弹出安装页面

实际结果:

实际下载完成后就不动了

bug描述:

使用plus.downloader.createDownload 下载最新的文件,plus.runtime.install 进行安装,但是会出现偶尔的安装不了的情况,并不是每次都会出现,同样的机器上面,也不是固定某一个机型,不知道有什么办法能检查出这种问题,因为是生产环境,所以没法调试,本地调试过几十次都未能出现一次

2024-11-25 18:31 负责人:无 分享
已邀请:

要回复问题请先登录注册