uniapp中IOS安卓热更新和整包更新app更新
在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更新的更多相关文章
- uniapp热更新和整包升级
一. uniapp热更新 (热更新官方文档) 很多人在开发uniapp的时候, 发现热更新失效问题(或者热更新没有更新manifest里的新增模块,SDK,原生插件包括云插件), 其实uniapp官 ...
- H5 移动端开发中 ios/安卓坑 和经验总结
1. ios new时间对象,需要用逗号隔开传日期的方式, 不支持 new Date('2019-03-01 08:00:00') 格式: 支持以下两种方式: 2. ios个别版本对fixed的属性的 ...
- 【uniapp 开发】uni-app 资源在线升级/热更新
注:本文为前端代码资源热更新.如果是整包升级,另见文档 https://ask.dcloud.net.cn/article/34972 HBuilderX 1.6.5 起,uni-app 支持生成 A ...
- 安卓热更新之Nuwa实现步骤
安卓热更新之Nuwa实现步骤 最近热更新热修复的功能在安卓应用上越发火热,终于我的产品也提出了相应的需求. 经过两天的研究,搞定了这个功能,在这里还要多谢大神们的博客,大神们的原理分析很到位,不过对于 ...
- iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】
在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...
- uniapp 打包IOS 更新AppStore版本
Hello 你好,我是大粽子. 最近随着新版本UI的发布APP也随之更新,随之而来的也就是IOS程序提审步骤,这次我详细的截图了每一个步骤,如果你正好也需要那么跟着我的节奏一步步来肯定是没问题的. 提 ...
- 在Unity3D中实现安卓平台的本地通知推送
[前言] 对于手游来说,什么时候需要推送呢?玩过一些带体力限制的游戏就会发现,我的体力在恢复满后,手机会收到一个通知告诉我体力已完全恢复了.这类通知通常是由本地的客户端发起的,没有经过服务端. 在安卓 ...
- IOS开始对App Store大扫除:你的APP更新了吗?
成都亿合科技小编从北京商报了解到,对于开发APP应用的要注意啦,IOS要开始对App Store大扫除:你的APP更新了吗? 日前苹果App Store的开发者们发送邮件,表示将实施一个持续评估应用行 ...
- WPF C#仿ios 安卓 红点消息提示
原文:WPF C#仿ios 安卓 红点消息提示 先把效果贴出来,大家看看. 代码下载地址: http://download.csdn.net/detail/candyvoice/9730751 点击+ ...
随机推荐
- Java 中,Comparator 与 Comparable 有什么不同?
Comparable 接口用于定义对象的自然顺序,而 comparator 通常用于定义用户 定制的顺序.Comparable 总是只有一个,但是可以有多个 comparator 来定义 对象的顺序.
- buuctf 荷兰带宽数据泄露
荷兰带宽数据泄露 下载附件得一个conf.bin文件,这个文件是路由信息文件,题目并没有任何提示,我们先来测试一下最简单的,找username或password然后当作flag交上去,我们使用Rout ...
- Value注解获取值一直为Null
@Value("${jwt.tokenHeader}") private String tokenHeader; 常见的错误解决办法如下: 1.使用static或final修饰了t ...
- 字符串反转&说反话
题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.(字符串长度不超过1000) 输入描述: 输入N个字符 输出描述: 输出该字符串反转后的字符串 示例1 输入 abcd 输出 d ...
- android的布局xml文件如何添加注释?
xml布局文件如图添加注释后报错,错误内容如下: 上网查阅xml添加注释的语法规则: XML 中的注释 在 XML 中编写注释的语法与 HTML 的语法很相似: <!--This is a co ...
- Oracle中between 和 in
select * from test_s where id between 2 and 12; between 就是左右全闭区间. SELECT columnsFROM tablesWHERE col ...
- github账号&文章选题
----------------------------------------------------------- https://github.com/yanpanjiao github ...
- 基于Apache组件,分析对象池原理
池塘里养:Object: 一.设计与原理 1.基础案例 首先看一个基于common-pool2对象池组件的应用案例,主要有工厂类.对象池.对象三个核心角色,以及池化对象的使用流程: import or ...
- DTO数据传输对象详解
文章目录 一.DTO是什么? 二.DTO解决的问题 三.代码演示 一.DTO是什么? DTO (数据传输对象) 数据传输对象(DTO),是一种设计模式之间传输数据的软件应用系统.数据传输目标往往是数据 ...
- XStream使用记录
XStream使用记录 官网 http://x-stream.github.io/index.html 下载地址 http://x-stream.github.io/download.html 参考资 ...