在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. Python - 字符串基础知识

  2. 外部晶振的使用原因与内部RC振荡器的使用方法

    原因一 早些年,芯片的生产制作工艺也许还不能够将晶振做进芯片内部,但是现在可以了.这个问题主要还是实用性和成本决定的.   原因二 芯片和晶振的材料是不同的,芯片 (集成电路) 的材料是硅,而晶体则是 ...

  3. CSS: 给表格的第一列和最后一列不同的样式

    table td:first-child { width:160px; height:20px; border:solid 1px Black; padding:5px; text-align:cen ...

  4. token的工作原理及其功能

    一.前言 登录模块是我们在前端项目中一定会有的模块,模块中有一个重要的部分是用户登录验证,对于验证用户是否登录过,我们直接处理办法是检查缓存中是否存在token值,若存在则用户可直接登录,反之,用户需 ...

  5. 修改django配置文件settings

    默认带数据库sqlite DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join ...

  6. docker更新portainer-ce2.0

    前两天,我在使用portainer的过程中发现左下角提醒有新版本的portainer需要安装,google了一圈如何升级portainer,并没有找到我需要的资料,就算获取了portainer:las ...

  7. redis集群在线迁移第一篇(数据在线迁移至新集群)实战一

    迁移背景:1.原来redis集群在A机房,需要把其迁移到新机房B上来.2.保证现有环境稳定.3.采用在线迁移方式,因为原有redis集群内有大量数据.4.如果是一个全新的redis集群搭建会简单很多. ...

  8. 9.Jenkins进阶之流水线pipeline基础使用实践(2)

    目录一览: 0x01 基础实践 0x02 进阶实践 (1) Sonarqube 代码质量检测之 Pipeline Script from SCM (2) Gitlab 自动触发构建之 Pipeline ...

  9. 踩了个DNS解析的坑,但我还是没想通

    hello大家好,我是小楼. 最近踩了个DNS解析的小坑,虽然问题解决了,但排查过程比较曲折,最后还是有一点没有想通,整个过程分享给大家. 背景 最近负责的服务要置换机器.置换机器可能很多小伙伴不知道 ...

  10. PuddingSwap联合 ESBridge举办愚人节“币圈愚话”联合空投活动,完成任务即可获得惊喜奖励

    据官方消息,4月1日0:00- 4月2日23:59,PuddingSwap联合 ESBridge举办"币圈愚话"空投活动,完成任务即可获得惊喜奖励. 此次PuddingSwap联合 ...