uniapp App资源差量升级包,uniapp App升级包,uniapp App在线热更新包,uniapp App资源差量升级更新


前言

App安装包分为以下三类:

  1. 应用资源安装包(wgt),扩展名为’.wgt’;
  2. 应用资源差量升级包(wgtu),扩展名为’.wgtu’;
  3. 系统程序安装包(apk)

一、生成App资源差量升级包

本文重点介绍uniapp应用资源差量升级,相对App资源独立升级,因为只需要下载更新的资源文件,所以升级包体积更小,升级速度会更快。

顾名思义,差量升级包是针对某个历史版本到新版本的差量,所以对于升级服务器来讲需要保留所有历史版本,并且分别生成每个历史版本到新版本的差量升级包。
目前HBuilderX IDE并未提供版本控制系统,所以需要按照以下规则手动生成差量升级包:

差量升级包文件格式为wgtu

在uniapp App支持的差量升级包文件后缀名必须是wgtu,它是标准的zip压缩文件,可以使用任何zip工具对wgtu目录进行压缩,并修改文件后缀名称为wgtu。

wgtu目录结构
名称类型说明
www目录保存需要更新的数据文件,其下的目录结构与应用的目录结构一致,其下必须包含manifest.json文件,否则认为更新文件非法,不执行升级操作
update.xml文件保存应用升级操作的配置信息,参考update.xml文件格式
update.xml为标准的xml文件格式,定义wgtu文件升级配置信息,其文件格式如下:
元素名称父元素类型描述必须
wgtu根节点
appidwgtu属性升级应用的appid
basiswgtu节点基础应用信息
versionbasis属性基础应用的版本信息(旧版本的版本号)
removewgtu节点升级需要删除的文件/目录列表
itemremove节点需要删除的项
pathitem属性需要删除的项的路径,相对于应用根目录,如“image/a.png”表示image目录下的a.png文件。如果是目录则以‘/’结尾,如“res/img/”表示res目录下的img目录,删除时包括下的所有内容。
wgtu示例

应用升级前的版本1.0,其应用目录结构为:
请添加图片描述

应用升级后的版本1.1,其应用目录结构为:
请添加图片描述
差量升级包wgtu文件的目录结构为(不包括最外层wgtu目录):
请添加图片描述
应用升级更新文件manifest.json、index.html,新增detail.html、image/new.png,删除image/icon5.png。
其中update.xml中的内容为:

<?xml version="1.0" encoding="utf-8" standalone="no"?>  
<wgtu appid="TEST" >  
<basis version="1.0" />  
<remove>  
<item path="image/icon5.png" />  
</remove>  
</wgtu>

应用中差量更新资源

下载wgtu文件并更新:

    var url='http://xxx.xxx.xxx/update.wgtu';  
    plus.nativeUI.showWaiting("升级中...");  
    var dtask = plus.downloader.createDownload( url, {method:"GET"}, function(d,status){  
        if ( status == 200 ) {   
            console.log( "Download wgtu success: " + d.filename );  
            plus.runtime.install(d.filename,{},function(){  
                plus.nativeUI.closeWaiting();  
                plus.nativeUI.alert("Update wgtu success, restart now!",function(){  
                    plus.runtime.restart();  
                });  
            },function(e){  
                plus.nativeUI.closeWaiting();  
                alert("Update wgtu failed: "+e.message);  
            });  
        } else {  
            plus.nativeUI.closeWaiting();  
             alert( "Download wgtu failed: " + status );   
        }   
    } );  
    dtask.addEventListener('statechanged',function(d,status){  
        console.log("statechanged: "+d.state);  
    });  
    dtask.start();

注意

1. wgtu包中的update.xml文件名称必须全部小写,并且和www在同一级目录中
2. wgtu包中www目录下必须包含manifest.json文件,并且里面不能包含注释(HBuilder中默认带注释,需要手动删除所有注释)
3. update.xml中的appid值是应用的AppID(如“H5F6AE111”),不是程序的包名(如“io.dcloud.H5F6AE1111”)
4. wgtu包必须是使用zip格式压缩的文件(不能使用如rar等其它压缩格式)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UniApp中,实现app版本更新可以通过以下步骤进行操作。首先,在关于我们的页面中应添加版本更新操作,可以通过后端加入一个字段来标识是否需要进行强制更新。如果需要强制更新,那么在进入app时就需要进行版本检测和对比,如果当前版本与最新版本不一致,则必须进行更新,否则无法使用该app。如果版本一致,则无需进行提示。这个逻辑基本与非强制更新相同。 在打时,还需要注意两个重要的修改。首先,要修改应用版本名称,确保其在升级时高于上一次设置的版本号。其次,要修改应用版本号,确保其为一个整数,并且在升级时高于上一次设置的值,这样在更新app时需要下载最新的才不会出现问题。 另外,UniApp还提供了一个版本更新的js文件,该文件省去了自己编写布局和进度条的麻烦。通过使用这个js文件,可以直接生成更新弹窗,并且可以配置是否进行强制更新,并且还可以看到更新的进度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [uniapp版本更新](https://blog.csdn.net/m0_51431448/article/details/130326109)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [uni-app版本更新](https://download.csdn.net/download/weixin_44052462/13188942)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值