uniapp之app自动更新
cmd-progress.vue
<!-- 版本升级弹窗开始 --><uni-popup ref="promotion" type="center"><view class="promotion"><view class="operates" v-if="showBtns==true"><text @click="cancel">取消</text><text @click="sure">确认</text></view><view class="operates" v-else><cmd-progress :percent="percentage" stroke-color="linear-gradient(to right, #ef32d9, #89fffd)"></cmd-progress></view></view></uni-popup><!-- 版本升级弹窗结束 -->
<script>
import cmdProgress from "@/components/cmd-progress/cmd-progress.vue" //进度条
export default {components: {cmdProgress},data() {return {downloadUrl: "", //安卓app下载链接percentage: 0, //下载进度showBtns: true,}},onShow() {this.query(); //版本升级},watch: {//监听进度条percentage(e) {if (e >= 100) {this.$refs.promotion.close()}}},methods: {//查询当前版本号query() {//#ifdef APP-PLUSplus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {var version = wgtinfo.version //客户端版本号this.check(version) //检测是否需要更新})//#endif},//检测是否需要更新async check(version) {let res = await edition.edition();let resp = res.data;if (resp) {const obj = resp.data.filter(item => {return item.groupName == 'version'})//获取当前版本号const versionNum = obj[0].title //服务端版本号this.downloadUrl = obj[0].content //app下载链接if (version != versionNum) {this.$refs.promotion.open();} else {console.log('当前已是最新版本')}}},//确认更新sure() {//关闭按钮this.showBtns = false;let sys = uni.getSystemInfoSync().platform //检查系统if (sys == 'ios') {this.getIosInfo()} else if (sys == "android") {this.updateAPP() // 调用下载方法app内下载}},//取消更新cancel() {this.$refs.promotion.close();},//链接苹果商店下载getIosInfo() {let appleId = “你的appid”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);});},//安卓更新updateAPP() {let _this = this;let url = this.downloadUrl;// 官方APIvar dtask = plus.downloader.createDownload(url, {}, function(d, status) {//d为下载的文件对象if (status == 200) {//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);plus.runtime.openFile(d.filename); //选择软件打开文件uni.showToast({icon: 'none',title: '更新成功'})} else {//下载失败plus.downloader.clear(); //清除下载任务uni.showToast({icon: 'none',title: '更新失败'})}})//开始下载dtask.start();//监听下载进度dtask.addEventListener('statechanged', function(task) {_this.percentage = parseInt((parseFloat(task.downloadedSize) /parseFloat(task.totalSize)) *100);if (_this.percentage == 100) {this.$refs.promotion.close();}// console.log('下载进度:' + _this.percentage)})},}
</script>
uniapp之app自动更新相关推荐
- uniapp 实现app自动更新
需求概述: 最近遇到的需求,扫码核验的app需要在线自动升级安装(因app简单上不了应用市场,所以调研用在线更新的办法) 第一步:首先需要一个可以更新和获取数据的接口(后端) 比如第一次打包时的版本名 ...
- Uniapp 实现app自动更新功能
APP.vue文件中 <script>export default {data: function() {return {version: "1.5.4"//版本号}} ...
- web app升级—带进度条的App自动更新
带进度条的App自动更新,效果如下图所示: 技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template><div><van- ...
- Android App自动更新解决方案(DownloadManager)
Android App自动更新解决方案(DownloadManager) 参考文章: (1)Android App自动更新解决方案(DownloadManager) (2)https://www.cn ...
- android通知栏应用程序更新,Android App自动更新之通知栏下载
本文实例为大家分享了Android App自动更新通知栏下载的具体代码,供大家参考,具体内容如下 版本更新说明 这里有调用UpdateService启动服务检查下载安装包等 1. 文件下载,下完后写入 ...
- 安卓APP自动更新实现
一.参考文献 简单实现安卓app自动更新功能 - 简书 安卓app自动更新功能完美实现_白云天的博客-CSDN博客_android 自动更新 Android 实现自动更新及强制更新功能_farley的 ...
- flutter APP自动更新
flutter APP自动更新 前言 在pubspec.yaml中安装依赖 在main.dart文件中,初始化FlutterDownLoader 配置网络 在AndroidManifest.xml新增 ...
- Android如何实现APP自动更新
先来看看要实现的效果图: 对于安卓用户来说,手机应用市场说满天飞可是一点都不夸张,比如小米,魅族,百度,360,机锋,应用宝等等,当我们想上线一款新版本APP时,先不说渠道打包的麻烦,单纯指上传APP ...
- 安卓APP自动更新功能实现
安卓APP自动更新功能实现 前言 代码实现 前言 安卓App自动更新基本上是每个App都需要具备的功能,接下来介绍一下实现自动更新的步骤. 代码实现 App自动更新主要分为新版本检测.升级弹窗.下载升 ...
最新文章
- vue双向数据绑定原理分析--Mr.Ember
- 抛硬币 直到连续出现两次字为止
- Sklearn-train_test_split随机划分训练集和测试集
- 载入页面时与服务器的连接被重置。_快捷指令打不开怎么回事?安装快捷指令无法载入的解决办法...
- Spark之SparkSQL数据源
- 梯度下降算法以及线性回归模型
- Delphi 调用Domino Lotus OA
- net执行oracle的存储过程
- SqlServer 的一个坑
- Codejock 19.x 定制Crack Version
- SpringBoot项目整合JasperReport报表生成PDF并下载
- 有软件测试台式电脑电源供电不足吗,电脑主机等电源供电不足的症状
- 学生档案信息管理系统(Java实现)
- 观《怦然心动》之后的感悟
- Untiy导入package时报错
- switch范围判断、switch区间判断
- 清华软院保研机试总结
- BFS、DFS复杂度分析(时间、空间)
- maven 多模块项目如何导入其他模块的第三方 jar 包
- Android的WebView如何播放视频和全屏视频(腾讯X5内核)