1***@qq.com
1***@qq.com
  • 发布:2021-04-25 16:52
  • 更新:2023-09-23 16:46
  • 阅读:3853

安装wgt文件失败[-1202]:WGT安装包中manifest.json文件不存在

分类:uni-app

如题,最近刚刚入坑Uniapp,按网上的资料完成资源更新的代码后发现wgt文件在安装时报错,大致信息如下
安装wgt文件失败[-1202]:WGT安装包中manifest.json文件不存在。
安装代码如下:

function installWgt(path){    
            plus.nativeUI.showWaiting("安装wgt文件...");    
            plus.runtime.install(path,{},function(){    
                plus.nativeUI.closeWaiting();    
                console.log("安装wgt文件成功!");    
                plus.nativeUI.alert("应用资源更新完成!",function(){    
                    plus.runtime.restart();    
                });    
            },function(e){    
                plus.nativeUI.closeWaiting();    
                console.log("安装wgt文件失败["+e.code+"]:"+e.message);    
                plus.nativeUI.alert("安装wgt文件失败["+e.code+"]:"+e.message);    
            });    
            }

按网上描述说原因是wgt文件重名,要每次下载文件都重新创建一个文件夹才行,实际上我也做了

plus.nativeUI.showWaiting("下载wgt文件...");     
                                        plus.downloader.createDownload( wgtUrl, {filename:"_doc/update/" + new Date().getTime() + '/'}, function(d,status){    
                                            console.log(JSON.stringify(status) );  

                                            if ( status == 200 ) {     
                                                console.log("下载wgt成功:"+d.filename);    
                                               installWgt(d.filename); // 安装wgt包     
                                            } else {    
                                                console.log("下载wgt失败!");    
                                                plus.nativeUI.alert("下载wgt失败!");    
                                            }    
                                            plus.nativeUI.closeWaiting();    
                                        }).start();    

安装代码执行后仍然说manifest.json文件不存在,然后我又找到了另一种处理方式,去掉manifest.json文件中的注释,去掉注释后重新打包wgt,依然不行,有没有人能帮忙看下,或给点意见?

2021-04-25 16:52 负责人:无 分享
已邀请:
biluo

biluo - 碧落

我也是遇到这个问题,以前的老项目一直都可以热更新,最近改需求拿出来突然就不行了,请问你解决了么

  • liaol

    哥们,你解决了吗?

    2021-10-11 20:22

liaol

liaol

我也遇到这个问题,请问楼主解决了吗?
我使用HB 发行-原生APP制作的wgt文件就可以升级成功,我通过命令行生成的文件,重新压缩,重命名就失败。

  • 5***@qq.com

    我的就算用hb来制作wgt文件也不行。。怎么 解决这个问题呢?

    2022-02-23 13:45

1***@qq.com

1***@qq.com - 何以解忧,唯有暴富

我也出现这个问题了,问下哥们你们解决了么?

2***@qq.com

2***@qq.com - 代码人

我也出现这个问题了

k***@126.com

k***@126.com

我解决了,代码中执行了down.abort()或者download.abort()

  • 1***@163.com

    您好,能否看一下down.abort()或者download.abort()加在哪呢? 目前我有的设备可以更新,有的却不行

    2023-01-06 10:57

szj

szj

下载地址用_downloads/1ff829ea1e824181920e0596a17af07f_UNIEE9074B(5).wgt这种,不要用网络地址

极光uni

极光uni

终于搞定了,插件里的代码有问题,uni_modules >>uni-upgrade-center-app >> pages >> upgrade-popup.vue
downloadPackage() {
this.downloading = true;
var that =this
//下载包
downloadTask = uni.downloadFile({
url: this.url,
success: res => {
if (res.statusCode == 200) {
this.downloadSuccess = true;
// fix: wgt 文件下载完成后后缀不是 wgt
if (this.isWGT && res.tempFilePath.split('.').slice(-1) !== 'wgt') {
const failCallback = (e) => {
console.log('[FILE RENAME FAIL]:', JSON.stringify(e));
}
plus.io.resolveLocalFileSystemURL(res.tempFilePath, function(entry) {
entry.getParent((parent) => {
const newName = new_wgt_${Date.now()}.wgt
entry.copyTo(parent, newName, (res) => {
that.setData({
tempFilePath: res.fullPath

                                        });  
                                        this.tempFilePath = res.fullPath  
                                        this.downLoadComplete()  
                                    }, failCallback)  
                                }, failCallback)  
                            }, failCallback);  
                        } else {  
                            this.tempFilePath = res.tempFilePath  

                            that.setData({  
                                tempFilePath: res.tempFilePath  

                            });  
                            this.downLoadComplete()  
                        }  
                    }  
                }  
            });  

            downloadTask.onProgressUpdate(res => {  
                this.downLoadPercent = res.progress;  
                this.downloadedSize = (res.totalBytesWritten / Math.pow(1024, 2)).toFixed(2);  
                this.packageFileSize = (res.totalBytesExpectedToWrite / Math.pow(1024, 2)).toFixed(2);  
            });  
        },  

        installPackage() {  
            // #ifdef APP-PLUS  
            // wgt资源包安装  
            if (this.isWGT) {  
                this.installing = true;  
            }  
            var aaa=this.tempFilePath  
            plus.runtime.install(aaa, {  
                force: false  
            }, async res => {  
                this.installing = false;  
                this.installed = true;  

                // wgt包,安装后会提示 安装成功,是否重启  
                if (this.isWGT) {  
                    // 强制更新安装完成重启  
                    if (this.is_mandatory) {  
                        uni.showLoading({  
                            icon: 'none',  
                            title: '安装成功,正在重启……'  
                        })  

                        setTimeout(() => {  
                            uni.hideLoading()  
                            this.restart();  
                        }, 1000)  
                    }  
                } else {  
                    const localFilePathRecord = uni.getStorageSync(localFilePathKey)  
                    uni.setStorageSync(localFilePathKey, {  
                        ...localFilePathRecord,  
                        installed: true  
                    })  
                }  
            }, async err => {  
                // 如果是安装之前的包,安装失败后删除之前的包  
                if (this.installForBeforeFilePath) {  
                    await this.deleteSavedFile(this.installForBeforeFilePath)  
                    this.installForBeforeFilePath = '';  
                }  

                // 安装失败需要重新下载安装包  
                this.installing = false;  
                this.installed = false;  

                uni.showModal({  
                    title: '更新失败,请重新下载',  
                    content: err.message,  
                    showCancel: false  
                });  
            });  

            // 非wgt包,安装跳出覆盖安装,此处直接返回上一页  
            if (!this.isWGT && !this.is_mandatory) {  
                uni.navigateBack()  
            }  
            // #endif  
        },
  • [已删除]

    你好,我的也是今天发现有问题,他这个是哪个代码块出问题了,能告诉我下吗

    2023-09-03 21:56

  • 极光uni

    回复 [已删除]: uni_modules >>uni-upgrade-center-app >> pages >> upgrade-popup.vue这个文件里的代码出问题了,我上面贴出的代码是改好后的代码,你可以对比下原代码,主要是加了几个that.setData({

    tempFilePath: res.tempFilePath


                            });

    2023-09-04 12:42

  • healerSy

    回复 极光uni: 加了没用

    2023-09-17 19:17

请输入这个昵称

请输入这个昵称

谁解决了给个回复,怎么都不行,我看下载是临时路径我加了.wgt然后开始报这个错误

  • [已删除]

    回退下官方的版本就可以了,最新的版本代码有问题,提了也没人解决

    2023-09-23 17:30

要回复问题请先登录注册