VueApp 自动更新解决plus is not defined问题
一,今天用VueApp 做自动更新调用按照网上列子直接 Plus 打包编译后出现了plus is not defined
发现需要引用document.addEventListener("plusready",function(){})
代码如下
<script> export default {
name: "looklive",
components: {
// eslint-disable-next-line vue/no-unused-components
headcontrol,
},
data() {
return {
path: "",
installFlag: false,
};
},
mounted() {
//自动更新
this.getNativeVersion();
},
methods: {
// 获取当前版本号
getNativeVersion() {
let that = this;
document.addEventListener("plusready", function () {
plus.runtime.getProperty(plus.runtime.appid, function (inf) {
that.nativeVersion = inf.version;
that.checkUpdate(inf.version);
localStorage.setItem("nativeVersion", inf.version);
});
});
},
// 检查更新
checkUpdate(nativeVersion) {
let that = this;
const checkUrl = "http://119.23.211.81:8000/api/ip/GetAppVersion";
that.axios.get(checkUrl).then((result) => {
// alert("服务区版本" + result.data.version);
//alert(nativeVersion);
if (!that.VersionContrast(nativeVersion, result.data.version))
that.downloadApk(result.data.url);
});
},
//版本号对比
VersionContrast(curV, reqV) {
// 当前版本号:curV;比较版本号:reqV
if (curV && reqV) {
let arr1 = curV.split("."),
arr2 = reqV.split(".");
let minLength = Math.min(arr1.length, arr2.length),
position = 0,
diff = 0;
//依次比较版本号每一位大小,当对比得出结果后跳出循环(后文有简单介绍)
while (
position < minLength &&
(diff = parseInt(arr1[position]) - parseInt(arr2[position])) == 0
) {
position++;
}
diff = diff != 0 ? diff : arr1.length - arr2.length;
//若curV大于reqV,则返回true return diff >= 0;
}
},
// 下载apk文件
downloadApk(url) {
let that = this; let watiting = plus.nativeUI.showWaiting("安装文件...");
let dtask = plus.downloader.createDownload(url, {
method: "GET",
retry: 0,
});
dtask.addEventListener(
"statechanged",
function (task, status) {
if (!dtask) {
return;
}
switch (task.state) {
case 1:
break;
case 2:
break;
case 3:
var nowData = Math.floor(
(task.downloadedSize * 100) / task.totalSize
);
console.log(nowData);
if (nowData % 10 === 0) {
watiting.setTitle("已下载:" + nowData + "%");
if (nowData === 100) {
watiting.toast("正在准备环境,请稍后!");
watiting.close();
}
}
break;
case 4:
// 安装apk资源包
plus.runtime.install(
dtask.filename,
{},
function () {
plus.nativeUI.closeWaiting();
plus.nativeUI.alert("更新完成!", function () {
// 更新完成后重启应用
plus.runtime.restart();
});
},
function (e) {
plus.nativeUI.closeWaiting();
plus.nativeUI.toast("安装更新失败!");
}
);
break;
default:
break;
}
},
false
);
dtask.setRequestHeader("Access-Control-Allow-Origin", "*");
dtask.start();
},
},
};
</script>
效果如下
VueApp 自动更新解决plus is not defined问题的更多相关文章
- Altium Designer自动更新——解决方法
今天,打开AD,一直显示更新,关机重启也不管事. 然后,我把AD安装目录下,system文件夹下的Installation文件夹删了.就不再更新了.
- tk.mybatis通用插件updateByPrimaryKeySelective无法自动更新ON UPDATE CURRENT_TIMESTAMP列的解决办法
tk.mybatis是一个很好用的通用插件,把CRUD这些基本的数据操作全都用动态SQL语句自动生成了,mapper和xml里十分清爽,但是昨天发现有一个小坑,记录在此: 有一张表,结构如下(已经简化 ...
- js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();)
js进阶解决浏览器缓存不能自动更新的问题(在ajax的url上带上一个参数,可以是日期,或者是随机数)(随机数Math.random)(取得日期的毫秒数:new Date().getTime();) ...
- 解决Debina系统自动更新软件包的问题
不知从何时开始,我的电脑每天开机连接上网络之后,不断的在下载数据,状态栏显示网速达到每秒1到2兆.开始我还不太在意,不过后来由于带宽全部被这种莫名其奥妙的下载占据了,我连网页都无否正常浏览了,所以我决 ...
- 解决Intellij Idea下修改jsp页面不自动更新
解决Intellij Idea下修改jsp页面不自动更新 On frame deactivation:被设置成了Do nothing 解决办法:改为Update resources(更新资源)或者Up ...
- 关闭win10 自动更新 及蓝屏解决办法
"控制面板-管理工具-服务"(或在"此电脑"鼠标右键,点击"管理"),找到Windows Update项目后,将"启动类型&quo ...
- 解析大型.NET ERP系统 自动更新
C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新.工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现. ...
- QML 从无到有 3 (自动更新)
新的需求出来啦,需要自动更新功能,不怕程序升级了. 自动更新,QML不好写,需要c++来辅助,这里就涉及QML中调用c++功能(这里就不写了,百度一下,很多). 思路:获取版本>下载程序> ...
- 分析nuget源码,用nuget + nuget.server实现winform程序的自动更新
源起 (个人理解)包管理最开始应该是从java平台下的maven开始吧,因为java的开发大多数是基于开源组件开发的,一个开源包在使用时很可能要去依赖其他的开源包,而且必须是特定的版本才可以.以往在找 ...
随机推荐
- POJ 3304 Segments 叉积
题意: 找出一条直线,让给出的n条线段在这条直线的投影至少有一个重合的点 转化一下,以重合的点作垂线,那么这条直线一定经过那n条线段.现在就是求找到一条直线,让这条直线经过所有线段 分析: 假设存在这 ...
- 一分钟了解JDBC的构成和原理
JDBC(一组接口组成) : 形式如下: 1:JDBC-ODBC桥接技术(100%不用) 在Windows中有ODBC技术,ODBC指的是开放数据库链接 是由微软提供的数据库连接应用,而Java可以利 ...
- Maven安装、配置及基础
简介: Maven是Apache公司的开源项目,是项目构建工具,用来管理依赖. Maven的优点: 同样的代码实现相同的功能,Maven项目没有Jar包,项目大小更小. maven的优点如何实现: 没 ...
- 信息论估计工具jidt基本使用
JIDT基本介绍 JIDT是 Java Information Dynamics Toolkit的简称,用于研究复杂系统中信息论相关度量的计算,它是一个基于java的开源工具库,也可以在Matlab. ...
- 资源:HTML调色板
调色板路径 https://encycolorpedia.cn/
- Linux | 压缩与解压详解
tar tar 命令用于对文件进行打包压缩或解压,格式: tar [选项][文件] tar命令的参数及其作用 参数 作用 -c 创建压缩文件 -x 解开压缩文件 -t 查看压缩包内有哪些文件 -z 用 ...
- python twain
self.SD.SetCapability(twain.CAP_DUPLEXENABLED, twain.TWTY_BOOL, 0) #单面扫描 self.SD.SetCapability(twain ...
- C语言:预处理 编译过程分解 证明图
- DEV C++自定义函数顺序与printf用法
#include <stdio.h> //int gys(int a,int b);//函数声明 int main() { int a = 520; int c1=98; int c2=5 ...
- python mysql 图片保存到表,从表中读出图片
fp = open(aa, 'rb') try: img = fp.read() except: print("图片打开出错") fp.close() return img #上面 ...