利用H5+实现APP在线更新

article/2025/9/24 20:01:06

1 在APP首页添加以下js代码

// 获取本地应用资源版本号
plus.runtime.getProperty(plus.runtime.appid,function(inf){wgtVer = inf.version;
//	mui.toast("当前应用版本:"+wgtVer);// 检测更新checkUpdate(); 
});
// 检测更新
var checkUrl = "能够返回最新版本的版本号的一个网址";
function checkUpdate(){
//		plus.nativeUI.showWaiting("检测更新");var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){switch(xhr.readyState){case 4:plus.nativeUI.closeWaiting();if(xhr.status == 200){
//					console.log("检测更新成功!:"+xhr.responseText);var newVer = xhr.responseText;if(wgtVer&&newVer&&(wgtVer != newVer)){// 弹出系统确认对话框plus.nativeUI.confirm( "确定下载更新?", function(e){if(e.index == 0){downWgt();	// 下载wgt资源包
//								mui.alert('下载中!') }else{}}, "检测到最新版本", ["下载","取消"] );}else{plus.nativeUI.toast("当前版本为最新版本!");
//						console.log('没有可用更新')}}else{
//					console.log("检测更新失败!");plus.nativeUI.toast("检测更新失败!");}break;default:break;}}xhr.open('GET',checkUrl);xhr.send();
};
// 下载wgt文件
var wgtUrl = "可以直接访问下载wgt文件的网址";
function downWgt(){plus.nativeUI.showWaiting("下载更新");plus.downloader.createDownload( wgtUrl , {filename:"_doc/update/"}, function(d,status){if ( status == 200 ) { console.log("下载更新成功:"+d.filename);installWgt(d.filename);	// 安装wgt资源包} else {console.log("下载更新失败!");plus.nativeUI.toast("下载更新失败!");}plus.nativeUI.closeWaiting();}).start();
};
// 更新应用资源
function installWgt(path){plus.nativeUI.showWaiting("安装更新");plus.runtime.install(path,{},function(){plus.nativeUI.closeWaiting();console.log("安装更新成功!");plus.nativeUI.alert("更新完成!",function(){//  更新完成后重启应用plus.runtime.restart();});},function(e){plus.nativeUI.closeWaiting();console.log("安装更新失败!["+e.code+"]:"+e.message);plus.nativeUI.toast("安装更新失败!");});
}

2 生成wgt在线升级资源包
(1)修改版本号

(2)修改最新版本更新内容(编写具体的更新代码)
(3)生成wgt资源包
功能栏发行选项–>制作移动App资源升级包–>选择保存路径,确定保存
(4)修改后台最新版本号(我这里后台用的是python中的Django)

在这里插入图片描述

(5)将生成的wgt放在通过一个网址可以直接访问下载的地方

注:在制作wgt资源包的时候一定要断开真机调试,避免修改端口号之后,当前真机运行版本已是最新版本,测试不出效果
————————————————
版权声明:本文为CSDN博主「小关学长」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38003892/article/details/82924662


http://chatgpt.dhexx.cn/article/PwMtLY72.shtml

相关文章

uniapp常用打包记录【h5、app、wx小程序】

h5打包 打包前配置 开始打包 打包成功 h5打包之后,如果用的unicloud开发,可以直接上传到“前端网页托管”,然后系统会有个默认域名,我们就可以实现公网访问了 h5的调试工具“vConsole” 参考: (160条消息) vue3 移动端…

H5加壳APP发布Android、IOS应用(证书响应文件制作)

主要步骤: 1.申请一个苹果账号 2.申请ios测试证书(p12) 3.申请ios描述文件(mobileprovision) 4.打包ipa 5.安装ipa 一、申请苹果账号 也可以用我注册好的苹果账号体验下,新注册个也简单,…

H5页面的部分IOS兼容处理

IOS兼容处理 环境:uni-app开发H5项目,H5项目链接webview嵌入app中 popup弹窗显示层级问题 问题:遮罩层遮挡位置不正确有白边,提交按钮应该在最底部却显示在popup上面 解决:将popup组件放到外层组件中,避免…

html app启动页制作,【示例】App引导页的制作

注意:本文为5+App的引导页制作方法,uni-app另行制作,推荐使用nvue制作,也可以参考插件市场已经封装的插件https://ext.dcloud.net.cn/plugin?id=192 启动页和引导页 首先澄清一下“启动界面”(splash)和“引导页”(guide)的概念,因为许多刚接触App开发的朋友会搞不清楚这…

H5+app -- 自动更新

一、最近做了一个app自动更新功能,用的基本都是网上找得到的。 1、h5 规范 : http://www.html5plus.org/doc/zh_cn/maps.html 2、环形进度条插件:http://www.jq22.com/jquery-info4495(不知道什么原因,下载的时候&…

html5页面和app的区别,H5页面与APP区别何在

APP相信大家都非常熟悉,就是手机里经常安装的软件程序,它都需要经过下载安装的步骤才能打开产品进行操作。不过H5页面和APP却有比较大的区别,它不需要经过下载安装,直接能够在浏览器和微信等社交平台中打开操作。 APP的制作一般都…

uni-app消息推送功能实现

1,首先可以简单的看一下HTML5 API文档了解一下对应的方法 HTML5API:https://www.html5plus.org/doc/zh_cn/push.html#plus.push.MessageOptions 2,先在manifest.json勾选一下Push推送 3, 需要配置一下并传给后端 4,可…

H5+app 安卓原生插件开发

目录 1、参考文档 2、离线打包操作步骤 1、下载SDK 2.打开android studio导入项目 3.修改相关参数 1.修改AndroidManifest.xml文件 2.修改dcloud_control.xml文件 3.修改strings.xml 4.修改build.gradle 4.运行 3原生拓展 1.java原生代码编写 2.配置文件 1.修改dcl…

html5怎么制作app页面,玩转HTML5移动APP页面(动效篇)

作为一名前端,在拿到设计稿时你有两种选择: 加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有志向的前端,当然是选2啦!可是需求时间又很短很短,怎么办呢? 这次就来谈谈一些动画设计的小技巧…

h5+hbuilder 制作手机app

Hbuilderx 下载地址 https://www.dcloud.io/hbuilderx.html 1.依次点击左上角 文件→ 新建→ 项目&#xff0c;会出现下面的界面。 2. index.html &#xff08;当然&#xff0c;引入的jq.js需要放到项目中&#xff09; <!DOCTYPE html> <html> <head><me…

Verilog带参数的`define用法

宏除了可以进行简单的文本替换,还可以像函数和任务一样传递指定多个参数分别对文本进行对应的替换. 示例1&#xff1a; define Disp(pa,pb,pc) \initial \begin \#1200; \$display("%d \n",(papbpc)); \$display(" data_ pa data_ pb data_ pc %d",(…

C语言中define的用法

define顾名思义&#xff0c;就是下定义&#xff0c;那么在C中它也发挥着下定义的作用。 1.提前定义变量 #include<stdio.h> #define N 100 int main() {int a10;printf("%d",Na);return 0; } 这个过程中N是100。 这个意思是提前定义N100&#xff0c;且这个…

C语言define高级用法大全

今天在看代码时&#xff0c;突然发现很多define的用法看不懂&#xff0c;故在此总结一下&#xff0c;顺便吐槽一下&#xff0c;C语言的宏复杂起来真的很难看懂。 不信的去看下这个的源码&#xff1a;【C语言开源库】lw_oopc&#xff1a;轻量级的C语言面向对象编程框架 一、宏…

Oracle基础之define用法简介教程

继上一篇博客Oracle绑定变量学习笔记&#xff0c;再写一篇define变量的简单教程 文章目录 1、define常量用法2、&和&&符号用法 1、define常量用法 注意&#xff1a;define常被误解为定义变量&#xff0c;其实不然&#xff0c;define定义的是字符常量&#xff0c;d…

#define的使用

目录 前言 1. #define定义标识符 2. #define定义宏 3. #define 替换规则 4. 宏和函数对比 前言 在很多C程序中&#xff0c;我们会在一个源文件的开头看到 #define 的字眼&#xff0c;和define的英文解释相同——可以理解为给xxx下定义&#xff0c;这里可以是标识符甚至是…

#define 的使用

#define 多数情况下我们是用来定义宏的&#xff0c;但是实际上&#xff0c;#define 作为预处理指令&#xff0c;也可以用来定义标识符&#xff0c;类似于 typedef&#xff0c;但是其本质和 typedef 是不同的。 目录 一、#define 定义标识符 1、定义和使用 2、#define 定义标…

C语言之#define用法入门详解

一、#define的基本语法 在C语言中&#xff0c;常量是使用频率很高的一个量。常量是指在程序运行过程中&#xff0c;其值不能被改变的量。常量常使用#define来定义。 使用#define定义的常量也称为符号常量&#xff0c;可以提高程序的运行效率。 其常见的用法包括两种&#xff0…

python微信聊天机器人_Python搭建一个微信聊天机器人

前言 因为班群里总是挺静的&#xff0c;所以想着要不放个机器人试试能不能活跃活跃气氛&#xff0c;然后就begin网上查阅资料试着建立个机器人。 语言环境开发环境&#xff1a;Ubuntu16.04 编程语言&#xff1a;Python2.7 步骤第一步&#xff1a;首先安装python2.7语言 su…

Python大佬用20行代码带你打造一个微信聊天机器人(附代码)

近来&#xff0c;打开微信群发消息&#xff0c;就会秒收到一些活跃分子的回复&#xff0c;有的时候感觉对方回答很在理&#xff0c;但是有的时候发现对方的回答其实是驴唇不对马嘴&#xff0c;仔细深究发现&#xff0c;原来对方是机器人。今天&#xff0c;小编就带大家用20行代…

16行代码实现微信聊天机器人,自动智能回复,打团了让它来陪老婆聊天

在我们的生活和工作当中,很多时候我们并不能及时地回复消息,尤其是业务比较多的人,客户给我们发消息我们不回又不好,但又没有那么多精力时时回复,这个时候智能机器人就能帮助我们解决很多问题。 像电商类的客服,像大的QQ群/微信群管理员,以及我们打游戏的时候,挂着脚本…