vue项目通过HBuilder打包成apk,实现apk自动更新下载

vue 项目通过 HBuilder 打包成 apk,实现 apk 自动更新下载

1、vue 项目通过 HBuilder 打包成 apk
  • vue 项目在终端执行 npm run build 打包成 dist 文件,生成的 dist 文件在 项目根目录下
    在这里插入图片描述

  • 在 HBuilder 中 新建一个项目
    在这里插入图片描述

  • 默认选择 5+APP 的默认模板项目
    在这里插入图片描述

  • 将 vue 项目中的 dist 文件复制到 HBuilder 项目中
    在这里插入图片描述

实现 apk 自动更新下载

index.html 中添加

		<script type='text/javascript'>
			document.addEventListener('plusready', function() {
				// 版本更新下载
				// 获取当前版本
				const localVersion = plus.runtime.versionCode
				console.log('localVersion' + localVersion)
				// 获取线上版本 发送 POST 请求  
				var xhr = new XMLHttpRequest()
				xhr.open('POST', '线上http地址', true)
				xhr.onreadystatechange = function() {
					const jsonData = JSON.parse(xhr.responseText)
					var serverVersion = jsonData.versionCode
					console.log('serverVersion' + serverVersion)
				}
				xhr.send()
				// 比较版本号
				if (this.serverVersion == this.localVersion) {
					alert('当前已经是最新版本了!')
				} else {
					var confirmText = confirm('发现最新版本,是否立即更新?')
					if (confirmText) {
						console.log('下载最新版本')
						// 下载最新版本
						let url = 'https地址'
						var dtask = plus.downloader.createDownload(url, {
								method: "GET"
							},
							function(d, status) {
								// 下载完成
								if (status = 200) {
									console.log('Download success: ' + d.filename)
									// 下载完成的文件路径  
									var filePath = d.filename
									// 安装 apk
									plus.runtime.install(filePath, {
										force: true
									}, function() {
										console.log('更新成功');
										alert('安装成功,重启中...')
									}, function(e) {
										console.error('更新失败: ' + e.message);
										alert('安装失败')
									})
								} else {
									alert('下载失败,请重新下载!')
									console.log('Download failed: ' + status)
								}
							})
						// 开始下载  
						dtask.start()
					} else {
						alert('您选择了取消!')
					}
				}
			})
		</script>```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/196823.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DDD落地:有赞的生产项目,DDD如何落地?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如有赞、阿里、滴滴、极兔、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 谈谈你的DDD落地经验&#xff1f; 谈谈你对DDD的理解&#x…

MS31542直流电机驱动芯片可Pin to Pin兼容GC3909

MS31542 是一个双全桥电机驱动。电源电压供电范围 4V 到 12V&#xff0c;平均电流 1.1A&#xff0c;电流峰值1.54A。如果需要更高的电流能力&#xff0c;可以将双全桥并联使用。 四个输入脚可以控制直流电机工作在正转、反转、刹车以及滑行模式&#xff0c;也可以控制一个步进电…

与中通支付对接

最近项目接入商户&#xff0c;商户需要同步给中通支付&#xff0c;报错两个异常已解决。 一、json报错 未接入中通SKD之前&#xff0c;不会报错&#xff0c;接入后&#xff0c;json转换异常。 排查后发现&#xff0c;中通的jar包里JSON版本太低&#xff0c;与自身项目的版本冲…

ARM Cortex-M核的内核态,用户态

首先&#xff0c;用户态和内核态是从操作系统层面上来划分的&#xff0c;如果没有操作系统&#xff0c;我可以直接运行在特权模式下&#xff0c;并使用特权指令。在这种情况下&#xff0c;我将负责管理和控制系统资源&#xff0c;执行关键操作&#xff0c;以及确保系统的安全性…

Surfer与Voxler数据处理及可视化

Surfer和Voxler分别是美国Golden Software 公司开发的用于二维和三维数据可视化软件&#xff0c;具有强大的数据处理和插值功能&#xff0c;软件主要应用于气象、环境和地质&#xff08;以及生物、医学等&#xff09;等领域。其中Surfer主要用于绘制二维等值线图、三维表面图以…

MySQL双主双从数据库集群搭建

1 引言 在之前的文章中提到过相关搭建方法&#xff0c;具体请参考《MySQL主从数据库搭建》这篇文章&#xff0c;本文主要讲述双主双从&#xff0c;双主多从集群的搭建方式。 这里要问一个问题&#xff0c;为什么MySQL要搭建数据库集群呢&#xff1f;我想应该有以下几点原因&…

Kvm 管理器突然打不开 启动虚拟系统管理器出错: g-dbus-error-quark: GDBus.Error:org.freed

环境&#xff1a; Ubuntu20.04 KVM mobaxterm 11.1 问题描述&#xff1a; 启动虚拟系统管理器出错: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying (4)Traceback (most recen…

使用nginx代理s3服务(私有云存储)

1、背景 公司网络安全原因&#xff0c;私有部署s3服务的机器无法被直接访问&#xff0c;所以需要加一层代理&#xff0c;通过访问代理去访问s3服务器&#xff0c;这里使用nginx进行代理。使用s3服务的方式是在代码中使用官方的java s3 sdk&#xff08;本文对于其他语言的官方s…

Python小知识

个人学习笔记&#xff0c;用于记录使用过程中好用的技巧、好用的库。 1 小知识 1.1 相对路径 1.2 打包Exe文件 命令&#xff1a; pyinstaller -F main.py其中-F&#xff1a;覆盖之前打包的文件 mian.py&#xff1a;需要打包的Python文件 PS&#xff1a;使用pyinstaller 5.1…

主机的具体权限规划:ACL的使用

目的&#xff1a;针对某一用户或某一组来设置特定权限需求&#xff0c;针对上&#xff0c;接着设置 ACL可以针对单一用户&#xff0c;文件&#xff0c;或者目录来进行rwx的权限设置&#xff0c;对于需要特殊权限的设置非常有帮助。 第一&#xff0c;查看文件系统是否支持&…

Apache2.4 AliasMatch导致301重定向问题?

环境&#xff1a;ubuntu18.04-desktop apache2版本&#xff1a; rootubuntu:/etc/apache2# apache2ctl -v Server version: Apache/2.4.29 (Ubuntu) Server built: 2023-03-08T17:34:33apache配置&#xff1a; DocumentRoot /var/www/html # Alias就没事 # Alias "/my…

工业级 S25HS01GTDPBHV030 NOR闪存,L9305EP汽车级驱动器IC,LMK03318RHSR时钟发生器,PLL(中文资料)

一、工业级 S25HS01GTDPBHV030 Semper™ NOR闪存 S25HS01GT SEMPER™ NOR Flash闪存系列是英飞凌高性能、安全而可靠的 NOR Flash解决方案。 它集成了适用于汽车、工业、通信等广泛应用的关键安全功能。 凭借 SEMPER™ NOR Flash闪存&#xff0c;英飞凌推出了业界首款符合 ASI…

【计算方法与科学建模】常微分方程初值问题的数值积分法:欧拉方法(向前Euler及其python实现)

文章目录 一、数值积分法1. 一般步骤2. 数值方法 二、欧拉方法&#xff08;Euler Method&#xff09;1. 向前欧拉法&#xff08;前向欧拉法&#xff09;a. 基本理论b. 典例解析c. 算法实现 常微分方程初值问题的数值积分法是一种通过数值方法求解给定初始条件下的常微分方程&am…

2019年11月13日 Go生态洞察:Go.dev - Go开发者的新枢纽

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

函数式编程:简洁与效率的完美结合

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Android : Fragment 传递数据 — 简单应用

示例图&#xff1a; 创建 Fragment new -> Fragment -> Fragment&#xff08;Blank&#xff09; MainActivity.java package com.example.fragmentdemo;import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentManager; import andro…

基于Python+requests编写的自动化测试项目-实现流程化的接口串联

框架产生目的&#xff1a;公司走的是敏捷开发模式&#xff0c;编写这种框架是为了能够满足当前这种发展模式&#xff0c;用于前后端联调之前&#xff08;后端开发完接口&#xff0c;前端还没有将业务处理完毕的时候&#xff09;以及日后回归阶段&#xff0c;方便为自己腾出学(m…

浏览器兼容性问题及其解决方案

一、认识浏览器 四大内核&#xff1a; Blink、Gecko、WebKit、Trident (不再活跃) 主流浏览器&#xff1a; IE(Trident内核)、Firefox(火狐&#xff1a;Gecko内核)、Safari(苹果&#xff1a;webkit内核)、Google Chrome(谷歌&#xff1a;Blink内核)、Opera(欧朋&#xff1a;B…

如何通过低代码工具,提升运输行业的运营效率和服务质量

《中国数字货运发展报告》显示&#xff0c;2022年我国公路货运市场规模在5万亿元左右。其中&#xff0c;数字货运整体市场规模约为7000亿元&#xff0c;市场渗透率约为15%。而以小微企业为主的货运行业&#xff0c;却以小、散、乱的行业特征&#xff0c;承载着5万亿元左右的市场…