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 点击+ ...
随机推荐
- mybatis源码之我见
以前一直想看mybatis的源代码,但是一直没找到入口(傻),最近看教程,有些感悟. 和起以前一样,关键代码我会用红色标记. 首先,先贴下我的dao和mapper,代码很简单,和平时写的hello w ...
- Python - 文档格式转换(CSV与JSON)
- 007.iSCSI服务器CHAP双向认证配置
一 iSCSI和CHAP介绍 1.1 iSCSI 磁盘 iSCSI后端存储支持多种设备类型,主要有: 文件 单一分区(partition) 磁盘 数组 RAID LVM 本手册建议以裸磁盘vdb作为示 ...
- Numpy非常重要有用的数组合并操作
Numpy非常重要有用的数组合并操作 背景:在给机器学习准备数据的过程中,经常需要进行不同来源的数据合并的操作. 两类场景: 给已有的数据添加多行,比如增添一些样本数据进去: 给已有的数据添加多列,比 ...
- keil Uvision4 面向51单片机数据类型属性一览表
- PCB基础知识(一)
在电子行业有一个关键的部件叫做PCB(printed circuit board,印刷电路板).这是一个太基础的部件,导致很多人都很难解释到底什么是PCB.这篇文章将会详细解释PCB的构成,以及在PC ...
- 【HTML5版】导出Table数据并保存为Excel
首发我的博客 http://blog.meathill.com/tech/js/export-table-data-into-a-excel-file.html 最近接到这么个需求,要把<tab ...
- 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
-webkit-box 的用法 通常,在移动端要实现水平方向平分宽度的布局,会使用 -webkit-box 来布局.它的使用方法是: <div class='parent'> <di ...
- 每天找回一点点之MD5加密算法
之前在做项目的时候用户密码都进行了MD5的加密,今天突然想起来了总结一下(●'◡'●) 一.MD5是什么? MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被 ...
- JS函数传递参数是是按值传递
JavaScript在传参的时候只有一种传递方法那就是按值传递(来自红宝书第四版本) 函数在传递参数的时候会把实参的值拷贝过来一份,而基础类型数据值是存在内存中,在拷贝的时候会复制出来一份,而引用类型 ...