IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue项目,PDA嵌入安卓,实现app热更新 -> 正文阅读

[JavaScript知识库]vue项目,PDA嵌入安卓,实现app热更新

1、服务器发送通知的方式
当有新版本时,由服务器向所有用户发送通知,提醒用户进行更新。
好处:用户下载应用之后,即使一次也没使用过,也可以接收到通知,然后进行版本更新。
坏处:
1)可能用户已经更新了新版本,可还是收到了有新版本的提示。
2)如果用户关闭了接收push通知,那么即使服务器push了一个新版本提示,用户也收不到。
2.本地通知的方式。
在pda登陆页面或者是设置一个定时器,间隔时间去查询用户当前版本,监测到版本不一致时提醒用户更新
方法:服务器提供一个访问现有版本的接口, 本地代码可以每隔一段时间,去访问服务器获取当前应用的版本,如果有更新,则弹出对话框提醒用户进行更新
坏处:可能不能及时更新版本。
3.服务器提供一个接口,访问接口(在使用应用中间(比如进入某个模块,这个模块调用此接口))进行提醒更新, 从接口获取的最新版本号与上次存储在本地的当前版本进行比较,不一致则提醒用户更新
好处:及时。用户可以很及时的更新新版本。
坏处:是用户在使用app期间收到提示

方法4没有进行实践操作,暂且仅当记录
4、另外,友盟有自动提醒的功能,利用友盟推送可以实现版本更新

目前PDA的版本更新用的是类似方法3
大致实现思路:
步骤一:获取当前安卓上所安装的软件版本号
步骤二:调用接口获取当前最新版本号
步骤三:当前版本号是否与最新版版本号一致,不一致进行版本下载安装更新

data () {
    return {
      currentVersion: '', // 安卓上当前软的版本号
      lateVer: '', // 最新版本号
      wgtUrl: '', // 下载地址
      percentageNum: 0, //下载进度条
      show: false, // 下载时可根据需求添加进度条样式 控制进度条显隐
    }
},
 mounted () {
    setTimeout(() => { // 根据代码实际情况确认是否添加延迟
      // 获取设备唯一标识码 浏览器运行时注释掉plus部分【浏览器中无plus会报错阻滞代码向下执行】
      // 这里可以调用5+ API了,为了更好的兼容性,应该使用以下代码进行判断
      if (window.plus) {
        // 在这里调用5+ API
        this.plusready()
      } else { // 兼容老版本的plusready事件
        document.addEventListener('plusready', this.plusready(), false)
      }
    })
},
methods: {
    plusready () {
      // 获取软件版本号
      plus.runtime.getProperty(plus.runtime.appid, (inf) => {
        console.info('当前版本号:' + inf.version)
        // 获取当前版本号逻辑操作
      })
    },
    // 当前安装软件的版本与最新版本不同时确定下载
    // 在App中检测版本更新首先判断版本号是否是最新的,不是最新则执行版本更新功能。
    // 实现方式主要通过plus.downloader.createDownload下载apk包,
    // 下载完成后通过plus.runtime.install来进行安装,在下载时给下载任务设置一个监听根据状态实时更新下载进度
    downLoad () {
      // plus.nativeUI.showWaiting("新版本更新中,请耐心等待~");
      let dtask = plus.downloader.createDownload('http://实际下载地址', {}, (d, status) => {
        if (status == 200) {
          console.log('下载更新成功:' + d.filename)
          // 安装wgt资源包
          this.installWgt(d.filename)
        } else {
          console.log('下载更新失败!')
          plus.nativeUI.toast('下载更新失败!')
        }
        plus.nativeUI.closeWaiting()
      })
      dtask.start()
      // 下载时实时显示下载进度
      let prg = 0
      dtask.addEventListener('statechanged', (task, status) => {
        // 给下载任务设置一个监听 并根据状态  做操作
        switch (task.state) {
          case 1:
            // '正在下载';
            break
          case 2:
            // '已连接到服务器';
            break
          case 3:
            prg = parseInt(
              (parseFloat(task.downloadedSize) /
                parseFloat(task.totalSize)) *
              100
            )
            this.percentageNum = prg // 赋值给进度条组件
            break
          case 4:
            this.show = false // 进度隐藏
            break
        }
      })
    },
    // installWgt()这个方法在一切准备就绪后安装App
    installWgt (path) {
      // 安装更新
      plus.nativeUI.showWaiting('Install updates')
      plus.runtime.install(path, {}, () => {
        plus.nativeUI.closeWaiting()
        console.log('安装更新成功!')
        plus.nativeUI.alert('安装更新成功!', () => {
          plus.runtime.restart() // 安装成功后重启应用
        })
      }, (e) => {
        plus.nativeUI.closeWaiting()
        console.log('安装更新失败![' + e.code + ']:' + e.message)
        plus.nativeUI.toast('安装更新失败!')
      })
    },
}

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:01:20  更:2022-06-25 18:02:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:52:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码