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自动更新相关推荐

  1. uniapp 实现app自动更新

    需求概述: 最近遇到的需求,扫码核验的app需要在线自动升级安装(因app简单上不了应用市场,所以调研用在线更新的办法) 第一步:首先需要一个可以更新和获取数据的接口(后端) 比如第一次打包时的版本名 ...

  2. Uniapp 实现app自动更新功能

    APP.vue文件中 <script>export default {data: function() {return {version: "1.5.4"//版本号}} ...

  3. web app升级—带进度条的App自动更新

    带进度条的App自动更新,效果如下图所示:   技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template><div><van- ...

  4. Android App自动更新解决方案(DownloadManager)

    Android App自动更新解决方案(DownloadManager) 参考文章: (1)Android App自动更新解决方案(DownloadManager) (2)https://www.cn ...

  5. android通知栏应用程序更新,Android App自动更新之通知栏下载

    本文实例为大家分享了Android App自动更新通知栏下载的具体代码,供大家参考,具体内容如下 版本更新说明 这里有调用UpdateService启动服务检查下载安装包等 1. 文件下载,下完后写入 ...

  6. 安卓APP自动更新实现

    一.参考文献 简单实现安卓app自动更新功能 - 简书 安卓app自动更新功能完美实现_白云天的博客-CSDN博客_android 自动更新 Android 实现自动更新及强制更新功能_farley的 ...

  7. flutter APP自动更新

    flutter APP自动更新 前言 在pubspec.yaml中安装依赖 在main.dart文件中,初始化FlutterDownLoader 配置网络 在AndroidManifest.xml新增 ...

  8. Android如何实现APP自动更新

    先来看看要实现的效果图: 对于安卓用户来说,手机应用市场说满天飞可是一点都不夸张,比如小米,魅族,百度,360,机锋,应用宝等等,当我们想上线一款新版本APP时,先不说渠道打包的麻烦,单纯指上传APP ...

  9. 安卓APP自动更新功能实现

    安卓APP自动更新功能实现 前言 代码实现 前言 安卓App自动更新基本上是每个App都需要具备的功能,接下来介绍一下实现自动更新的步骤. 代码实现 App自动更新主要分为新版本检测.升级弹窗.下载升 ...

最新文章

  1. vue双向数据绑定原理分析--Mr.Ember
  2. 抛硬币 直到连续出现两次字为止
  3. Sklearn-train_test_split随机划分训练集和测试集
  4. 载入页面时与服务器的连接被重置。_快捷指令打不开怎么回事?安装快捷指令无法载入的解决办法...
  5. Spark之SparkSQL数据源
  6. 梯度下降算法以及线性回归模型
  7. Delphi 调用Domino Lotus OA
  8. net执行oracle的存储过程
  9. SqlServer 的一个坑
  10. Codejock 19.x 定制Crack Version
  11. SpringBoot项目整合JasperReport报表生成PDF并下载
  12. 有软件测试台式电脑电源供电不足吗,电脑主机等电源供电不足的症状
  13. 学生档案信息管理系统(Java实现)
  14. 观《怦然心动》之后的感悟
  15. Untiy导入package时报错
  16. switch范围判断、switch区间判断
  17. 清华软院保研机试总结
  18. BFS、DFS复杂度分析(时间、空间)
  19. maven 多模块项目如何导入其他模块的第三方 jar 包
  20. Android的WebView如何播放视频和全屏视频(腾讯X5内核)

热门文章

  1. javascript学习-SVG
  2. 漫威十年,好莱坞的转型焦虑
  3. Win10 桌面回收站右键没有“清空回收站”选项怎么解决
  4. Vivado 信号混频设计
  5. 沧小海笔记之PCIE协议解析——第三章 PCIE的数据链路层
  6. 传奇人形怪爆率怎么设置?人形怪增加教程
  7. 苹果手机直播怎么投屏 苹果手机投影电脑屏幕
  8. Android传感器之光线传感器介绍
  9. ue4 点击某一物体触发事件_UE4引擎——姜小白修炼记(三)
  10. springboot项目实现站内信功能记实