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

安装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

2***@qq.com

2***@qq.com

下载地址用_downloads/1ff829ea1e824181920e0596a17af07f___UNI__EE9074B(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

1***@qq.com

1***@qq.com

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

  • [已删除]

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


    2023-09-23 17:30

要回复问题请先登录注册