在App.vue中

onLaunch: function() {
console.log('App Launch');
// #ifdef APP-PLUS
this.getVersion();
// #endif
}

App.vue中的methods的方法们

        // 获取APP版本号
getVersion() {
plus.runtime.getProperty(plus.runtime.appid, wgtinfo => {
var version = wgtinfo.version;
var version_num = version.split('.').join('');
console.log(version_num, '版本号');
this.getAppVersion(version_num);
});
},
// 访问更新接口
getAppVersion(version) {
let that = this;
uni.setStorageSync('version', version);
// 获取版本号
var system = uni.getSystemInfoSync().platform;
// 是否更新接口(数据仅为我司定义,请勿照搬)
that.$request
.get('store/system/getAppVersion', {
system: system,
version_id: version
})
.then(res => {
console.log(res, '检测更新');
if (res.data.errno == 0) {
if (res.data.info != '') {
var type = res.data.info.version_type; //type判断为整包更新还是热更新(整包为.apk,热更新为.wgt)
var down_url = res.data.info.down_url; //更新包下载地址
uni.showModal({
//提醒用户更新
title: 'APP更新提示',
content: res.data.info.version_remark, //更新接口提示的信息
success: res => {
// modal中点击确定
if (res.confirm) {
// 下载更新方法
that.downLoadFileAndInstall(down_url, type);
}
},
fail: error => {
//发生错误
}
});
} else {
// 不需要更新
}
} else {
//发生错误
}
});
},
// 下载更新包
downLoadFileAndInstall(down_url, type) {
// type仅为我司定义
if (type == 1) {
//热更新
var that = this;
plus.downloader
.createDownload(down_url, { filename: '_doc/update/' }, function(d, status) {
if (status == 200) {
plus.nativeUI.toast('下载wgt文件成功,安装中');
that.installWgt(d.filename); // 安装wgt包
} else {
plus.nativeUI.toast('下载wgt失败!');
}
plus.nativeUI.closeWaiting();
})
.start();
} else if (type == 0) {
// 整包
var osname = plus.os.name;
if (osname == 'Android') {
// 安卓打开网页下载
plus.runtime.openURL(down_url);
} else {
// ios打开应用商店
var appleId = 123456789; //apple id 在 app conection 上传的位置可以看到 https://appstoreconnect.apple.com/
plus.runtime.launchApplication(
{
action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
},
function(e) {
console.log('Open system default browser failed: ' + e.message);
}
);
}
}
},
//更新资源包
installWgt(path) {
plus.runtime.install(
path,
{},
function() {
plus.nativeUI.toast('应用资源更新完成!', function() {
plus.runtime.restart();
});
},
function(e) {
plus.nativeUI.toast('安装wgt文件失败[' + e.code + ']:' + e.message);
}
);
}

uniapp中IOS安卓热更新和整包更新app更新的更多相关文章

  1. uniapp热更新和整包升级

    一. uniapp热更新  (热更新官方文档) 很多人在开发uniapp的时候, 发现热更新失效问题(或者热更新没有更新manifest里的新增模块,SDK,原生插件包括云插件), 其实uniapp官 ...

  2. H5 移动端开发中 ios/安卓坑 和经验总结

    1. ios new时间对象,需要用逗号隔开传日期的方式, 不支持 new Date('2019-03-01 08:00:00') 格式: 支持以下两种方式: 2. ios个别版本对fixed的属性的 ...

  3. 【uniapp 开发】uni-app 资源在线升级/热更新

    注:本文为前端代码资源热更新.如果是整包升级,另见文档 https://ask.dcloud.net.cn/article/34972 HBuilderX 1.6.5 起,uni-app 支持生成 A ...

  4. 安卓热更新之Nuwa实现步骤

    安卓热更新之Nuwa实现步骤 最近热更新热修复的功能在安卓应用上越发火热,终于我的产品也提出了相应的需求. 经过两天的研究,搞定了这个功能,在这里还要多谢大神们的博客,大神们的原理分析很到位,不过对于 ...

  5. iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】

    在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...

  6. uniapp 打包IOS 更新AppStore版本

    Hello 你好,我是大粽子. 最近随着新版本UI的发布APP也随之更新,随之而来的也就是IOS程序提审步骤,这次我详细的截图了每一个步骤,如果你正好也需要那么跟着我的节奏一步步来肯定是没问题的. 提 ...

  7. 在Unity3D中实现安卓平台的本地通知推送

    [前言] 对于手游来说,什么时候需要推送呢?玩过一些带体力限制的游戏就会发现,我的体力在恢复满后,手机会收到一个通知告诉我体力已完全恢复了.这类通知通常是由本地的客户端发起的,没有经过服务端. 在安卓 ...

  8. IOS开始对App Store大扫除:你的APP更新了吗?

    成都亿合科技小编从北京商报了解到,对于开发APP应用的要注意啦,IOS要开始对App Store大扫除:你的APP更新了吗? 日前苹果App Store的开发者们发送邮件,表示将实施一个持续评估应用行 ...

  9. WPF C#仿ios 安卓 红点消息提示

    原文:WPF C#仿ios 安卓 红点消息提示 先把效果贴出来,大家看看. 代码下载地址: http://download.csdn.net/detail/candyvoice/9730751 点击+ ...

随机推荐

  1. Math.round(11.5) 等于多少?Math.round(-11.5)等于 多少?

    Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11.四舍五 入的原理是在参数上加 0.5 然后进行下取整.

  2. SVN报错之“Error: Please execute the 'Cleanup' command. ”

    问题 Error: Please execute the 'Cleanup' command. 需要清理下,注意SVN拉数据的时候别打开其中的问题 解决方案

  3. iOS全埋点解决方案-界面预览事件

    前言 ​ 我们先了解 UIViewController 生命周期相关的内容和 iOS 的"黑魔法" Method Swizzling.然后再了解页面浏览事件($AppViewScr ...

  4. 控制算法的划分(自适应控制、预测控制、模糊控制等,PID等;蚁群算法、神经网络,还有机器学习、人工智能中的很多方法)

    一般来说,控制器的设计,分为控制框架的选取,跟参数的优化.自适应控制.预测控制.模糊控制等,跟PID一样,是控制算法(我习惯称为控制框架). 而粒子群.遗传算法(类似的还有蚁群算法.神经网络,还有机器 ...

  5. Numpy对数组按索引查询

    Numpy对数组按索引查询 三种索引方法: 基础索引 神奇索引 布尔索引 基础索引 一维数组 和Python的List一样 二维数组 注意:切片的修改会修改原来的数组 原因:Numpy经常要处理大数组 ...

  6. Mpvue 小程序转 Web 实践总结

    介绍 Mpvue 是一个使用 Vue.js 开发小程序的前端框架.框架基于 Vue.js 核心,修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为 ...

  7. PAT B1002写出这个数

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...

  8. box-shadow 阴影的高级用法,多个阴影叠加

    box-shadow的这些用法你知道吗? $shadowH: ''; @for $i from 1 through 12 { $shadowH: #{$shadowH}, 0 ($i * 30px) ...

  9. SpringMVC-自定义转换器

    1.定义转换器类实现Converter接口 import org.springframework.core.convert.converter.Converter; import java.text. ...

  10. LC-349

    Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the ...