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

news2025/1/8 4:40:06

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>```

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【多属性对象“{a:1,b:2}”】与【单属性对象的数组“[{a:1},{b:2}]”】的相互转换

前端开发的某些场景&#xff08;比如用echarts开发某些可视化图表&#xff09;经常需要将【多属性对象&#xff0c;如“{a:1,b:2}”】与【单属性对象的数组&#xff0c;如“[{a:1},{b:2}]”】做相互转换&#xff0c;以下是不通过循环&#xff0c;简洁实现这种转换的方法&#x…

广州华锐互动:线上3D低碳环保主题展厅,沉浸式体验有助于培养环保意识

随着科技的飞速发展&#xff0c;环保已经成为了全球关注的焦点。为了让更多的人了解环保科技的重要性&#xff0c;许多城市都建立了线上3D低碳环保主题展厅。这些展馆通过虚拟现实技术&#xff0c;让人们身临其境地感受到环保科技的魅力&#xff0c;从而提高人们的环保意识。 线…

卡码网语言基础课 | 14. 链表的基础操作Ⅱ

题目&#xff1a; 构建一个单向链表&#xff0c;链表中包含一组整数数据&#xff0c;输出链表中的第 m 个元素&#xff08;m 从 1 开始计数&#xff09;。 要求&#xff1a; 1. 使用自定义的链表数据结构 2. 提供一个 linkedList 类来管理链表&#xff0c;包含构建链表、输出…

自动标注好用吗?基于SAM和Label Studio搭建半自动实例分割标注平台

文章目录 一、半自动标注二、缺点三、安装方法1、 python版本要求2、下载playground3、SAM安装4、SAM权重下载5、安装label-studio-ml6、启动SAM接口7、SAM启动日志8、安装并启动label-studio9、label-studio启动日志 四、半自动标注使用方法1、创建project并导入数据2、标签设…

多元系的复相平衡

多元系的复相平衡 多元系的吉布斯函数 G-{T,p,n}系统 吉布斯关系 多元系的热力学基本方程

使用Three.js创建导航立方体

什么是导航立方体? 导航立方体是一个交互式的3D控件,它允许用户通过点击和拖动立方体的各个面来改变3D视图的方向。这是一种非常直观的方式,让用户能够轻松地在3D空间中导航。 创建导航立方体 下面是一个基本的步骤,说明如何使用Three.js创建一个导航立方体: // 创建场景…

ICCV 2023 | 动态蛇形卷积(内含即插即用的代码及测试用例)

论文链接&#xff1a; https://arxiv.org/abs/2307.08388 代码链接&#xff1a; https://github.com/YaoleiQi/DSCNet 下面直接上代码&#xff0c;并且源码中也给了测试用例&#xff0c;是一个即插即用的模块 import os import torch import numpy as np from torch impor…

怎么做excel表格的二维码?文件快速做二维码的教程

Excel表格怎么做成二维码来扫码插看呢&#xff1f;Excel是工作中常用的一种文件格式&#xff0c;想要将表格内容分享给其他人查看&#xff0c;那么将表格生成二维码的方法会更加的方便快捷&#xff0c;其他人只需要扫描二维码就可以查看或者下载文件。表格excel二维码可以通过文…

Rust语言入门教程(六) - 字符串类型

在Rust中&#xff0c; 字符串类型其实是一个比较复杂的话题。在Rust的标准库中&#xff0c;至少都提供了6种字符串类型&#xff0c;我们平常使用的最多的是其中的两种。这两种类型互相之间也有所关联&#xff1a; str&#xff1a; 字符串切片String 字符串 其中&#xff0c; 字…

细说数据仓库上篇

在谈数仓之前&#xff0c;先来看下面几个问题&#xff1a; 数仓为什么要分层&#xff1f; 用空间换时间&#xff0c;通过大量的预处理来提升应用系统的用户体验&#xff08;效率&#xff09;&#xff0c;因此数据仓库会存在大量冗余的数据&#xff1b;不分层的话&#xff0c;…

高效运维管理的7个要点

T管理和运维工作涵盖了各行业的各岗位中&#xff0c;如何提高工作效率&#xff0c;规避风险&#xff0c;更好的做好IT管理和运维工作&#xff0c;已经成为一个不断探索和研究的新兴课题。因此&#xff0c;应从两个层面加强和完善IT管理和运维工作&#xff0c;可以改善IT运维工作…

为什么要编写测试用例,自己知道不就行了吗

“为什么要编写测试用例&#xff0c;测试用例写给谁看”&#xff0c;这个问题看似简单&#xff0c;但却涵盖了一系列复杂的考虑因素&#xff0c;并不太好回答。 为了向各位学测试的同学们解释清楚“为什么编写测试用例是至关重要的”&#xff0c;我将通过以下5个方面进行展开&…

MySQL-05-MySQL的日志系统

1-redo log(重做日志) 在MySQL里也有这个问题&#xff0c;如果每一次的更新操作都需要写进磁盘&#xff0c;然后磁盘也要找到对应的那条记录&#xff0c;然后再更新&#xff0c;整个过程IO成本、查找成本都很高。MySQL里经常说到的WAL技术&#xff0c;WAL的全称是Write-Ahead L…

pmos防反保护电路的设计,pmos烧毁原因分析

概述 汽车电源系统常在极为恶劣的环境下运行&#xff0c;数以百计的负载挂在汽车电池上&#xff0c;需要同时确定负载状态的汽车电池可能面临极大的挑战。当负载处于不同工作条件和潜在故障状态时&#xff0c;设计人员需要考虑电源线产生的各种脉冲可能带来的影响。 本系列的上…

VSD Viewer for Mac(Visio绘图文件阅读器)

VSD Viewer for Mac版是mac上一款非常强大的Visio绘图文件阅读器&#xff0c;它为打开和打印Visio文件提供了简单的解决方案。可以显示隐藏的图层&#xff0c;查看对象的形状数据&#xff0c;预览超链接。还可以将Visio转换为包含图层&#xff0c;形状数据和超链接的PDF文档。 …

RHEL开发者授权注册

$ sudo subscription-manager register --usernameusername --passwordpassword$ sudo subscription-manager attach --auto查看是否注册 Red Hat 订阅管理&#xff0c;请运行以下命令&#xff1a; $ sudo subscription-manager list --installed

mysql账户密码获取

数据库安装目录 MySQL\data\mysql 里面的user.MYD文件&#xff0c;需要编译查看 数据库里的user表 库下面的user表拿到后&#xff0c;直接解密密码即可 网站配置文件 conn、config、data、sql、common 、inc这些文件 比如pikachu\inc目录下的config.inc.php文件的内容会显示…

详解如何使用VSCode搭建TypeScript环境(适合小白)

搭建Javascript环境 因为TypeScript不能直接在浏览器上运行。它需要编译器来编译并生成JavaScript文件。所以需要首先安装好javascript环境&#xff0c;可以参考文章&#xff1a; 详解如何使用VS code搭建JavaScript环境&#xff08;适合小白&#xff09;_vscode配置javascri…

从 15000 家参赛企业脱颖而出,涛思数据荣获中国创新创业大赛“优秀企业”

近年来&#xff0c;以大数据、人工智能、物联网、新型显示、高性能集成电路、5G通信、云计算等为代表的创新技术加速突破应用&#xff0c;在传统行业的数字化转型进程中发挥着重要作用&#xff0c;催生出一系列新产品、新技术、新业态&#xff0c;形成了强劲的数字经济发展新动…

单细胞featureplot美化修改-自定义修改图片样式-umap密度图画等高线

大家好&#xff0c;欢迎来的单细胞图片美化专辑 1.如何修改seruat对象的行名 2.FeaturePlot如何把所有阳性表达的spot放到图的前面 在单细胞实践中&#xff0c;我发现不同的客户对画图需求并不一致&#xff0c;这可能和个人审美有关吧。本专辑着重于各种各样的单细胞个性化绘…