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的开发大多数是基于开源组件开发的,一个开源包在使用时很可能要去依赖其他的开源包,而且必须是特定的版本才可以.以往在找 ...
随机推荐
- Exponentiation java大数
Exponentiation 大数a的n次幂,直到读到EOF(文件结尾)为止,其中忽略小数后面的0 1 import java.util.*; 2 import java.math.*; 3 impo ...
- WebService:java配置类形式发布WebService接口及遇见的问题总结
配置WebService前需要以下依赖jar包 #版本只供参考,具体看项目 <dependency> <grouId>org.apache.cxf</grouId> ...
- 资源:Hadoop安装包下载路径
下载路径 Hadoop所有版本:http://archive.apache.org/dist/hadoop/common/
- interpration
On interpreting the effects of repetition interpreting 释意1. If you interpret something in a particul ...
- 题解 guP2421 【[NOI2002]荒岛野人】
本题珂以转换成一个式子 即求Ci + Pi × x ≡ Cj + Pj × x (mod M) 的最小答案是否大于寿命最小值 以人数为最小值开始枚举山洞数,用扩展欧几里得计算最优答案是否大于寿命 若不 ...
- shell编程之循环语句for / while / until
shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...
- ArrayList 深入浅出
ArrayList 特点:按添加顺序排列.可重复.非线程安全: 底层实现:数组 扩容原理:初始化集合时,默认容量为 0,第一次添加元素时扩容为 10,容量不够时扩容为原来容量的 1.5 倍. 这里扩容 ...
- Redux-基本概念
相关文档 1) 英文文档: https://redux.js.org/ 2) 中文文档: http://www.redux.org.cn/ 3) Git ...
- python + csv 操作(读写)
import csv"""与excel文件不同,csv文件中:1.数据都没有数据类型,值都是'字符串'2.没有颜色和样式,不能指定单元格测的宽高,不能合并单元格3.没有对 ...
- 微信小程序云开发-云存储-上传文件(word/excel/ppt/pdf)到云存储
说明 word/excel/ppt/pdf是从客户端会话选择文件.使用chooseMessageFile中选择文件. 一.wxml文件 上传按钮,绑定chooseFile <!--上传文件(wo ...