首页 > 其他分享 >APP更新方案

APP更新方案

时间:2024-05-29 18:33:17浏览次数:20  
标签:方案 版本号 res APP 更新 edition uni data

注意!!!后端返回数据要求 字段如下 

url: 'http://127.0.0.1:8088/edition_manage/get_edition', //示例接口
传参data: {
           edition_type: plus.runtime.appid,
           version_type: uni.getSystemInfoSync().platform, //android或者ios
            edition_number: inf.versionCode // 打包时manifest设置的版本号 
         },

 

返参data:{
    // 版本更新内容 支持<br>自动换行
    describe: '1. 修复已知问题<br>2. 优化用户体验', 
    edition_url: '', //apk、wgt包下载地址或者应用市场地址  安卓应用市market://details?id=xxxx 苹果store itms-apps://itunes.apple.com/cn/app/xxxxxx
    edition_force: 0, //是否强制更新 0代表否 1代表是
    package_type: 1, //0是整包升级(apk或者appstore或者安卓应用市场) 1是wgt升级
    edition_issue:1, //是否发行  0否 1是 为了控制上架应用市场审核时不能弹出热更新框
    edition_number:100, //版本号 最重要的manifest里的版本号 (检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新)
    edition_name:'1.0.0',// 版本名称 manifest里的版本名称
    edition_silence:0, // 是否静默更新 0代表否 1代表是
}

后端注意!!!

edition_number传这个参数是为了解决部分用户app长期不使用,第一次打开服务器查到的版本是最新的是wgt包,但是之前app有过整包更新,如果直接更新最新wgt的话,会出现以前的整包添加的原生模块或者安卓权限无法使用,所以后端查询版本必须返回大于当前edition_number版本的最新的整包apk地址或者是应用市场地址,如果没有大于edition_number的整包,就返回最新的wgt包地址就行

import silenceUpdate from '@/uni_modules/rt-uni-update/js_sdk/silence-update.js' //引入静默更新

//#ifdef APP-PLUS 

// 获取本地应用资源版本号
        plus.runtime.getProperty(plus.runtime.appid, (inf) => {
            //获取服务器的版本号
            uni.request({
                url: 'http://127.0.0.1:8088/edition_manage/get_edition', //示例接口
                data: {
                    edition_type: plus.runtime.appid,
                    version_type: uni.getSystemInfoSync().platform, //android或者ios
                    edition_number: inf.versionCode // 打包时manifest设置的版本号 
                },
                success: (res) => {
                    //res.data.xxx根据后台返回的数据决定(我这里后端返回的是data),所以是res.data.data 
                    //判断后台返回版本号是否大于当前应用版本号 && 是否发行 (上架应用市场时一定不能弹出更新提示)
                    if (Number(res.data.data.edition_number) > Number(inf.versionCode) && res
                        .data.data.edition_issue == 1) {

                        //如果是wgt升级,并且是静默更新 (注意!!! 如果是手动检查新版本,就不用判断静默更新,请直接跳转更新页,不然点击检查新版本后会没反应)
                        if (res.data.data.package_type == 1 && res.data.data.edition_silence == 1) {

                            //调用静默更新方法 传入下载地址
                            silenceUpdate(res.data.data.edition_url)

                        } else {
                            //跳转更新页面 (注意!!!如果pages.json第一页的代码里有一打开就跳转其他页面的操作,下面这行代码最好写在setTimeout里面设置延时3到5秒再执行)
                            uni.navigateTo({
                                url: '/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update?obj=' +
                                    JSON.stringify(res.data.data)
                            });
                        }
                    } else {

                        // 如果是手动检查新版本 需开启以下注释
                        /* uni.showModal({
                            title: '提示',
                            content: '已是最新版本',
                            showCancel: false
                        }) */
                    }
                }

            })

        });

        //#endif    

 

标签:方案,版本号,res,APP,更新,edition,uni,data
From: https://www.cnblogs.com/zcm1688/p/18220869

相关文章

  • 升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0 uniapp、vue、android、web 框
    升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0uniapp、vue、android、web框架:Vue3+SpringBoot3),界面功能(三) 主要功能要点:     权限管理(组织机构、用户管理、角色管理、岗位管理)     系统设置(菜单管理、参数管理、数据字典、定时任务、文件管......
  • celery官方解决方案(基于django新)
    使用官方方案之前,先看看目录结构。luffy_api/__init__.pycelery.pysettings.pyurls.pywsgi.pymyapp/__init__.pytasks.py#也就是放在项目名称同名的内部文件夹下(和settings)同名#必须是这样的结构。第一步安装必要的模块......
  • celery通用解决方案(基于django老)
    通用方案移动项目celery_task到项目根目录在视图中写逻辑启动worker-->celery-Acelery_taskworker-ldebug-Peventlet运行django,正常使用接口#1把之前的celery_task移动过到项目根路径,然后开启worker#2在视图函数中提交任务#fromlibs.tx_smsimportg......
  • 蓝桥杯嵌入式 第六届国赛 更新中……
    题目配置注意事项复制LCD的工程,先配置资源---勾选完选项一定要再看一眼,可能选择错误ADC:配置ADC2_IN15,对应PB15引脚EEROM,配置PB6和PB7按键输入模式PB0、PB1、PB2、PA0LED一定要使能PD2PWM互补输出,用TIM15TIM6-10ms基准定时器代码-默写大师先......
  • 在kubernetes里使用AppArmor限制容器对资源的访问
    目录一.系统环境二.前言三.AppArmor简介四.AppArmor和SELinux的区别五.使用AppArmor限制nginx程序访问目录5.1安装nginx5.2修改nginx的默认主页5.3安装AppArmor实用工具5.4AppArmor规则解释5.5配置AppArmor规则限制nginx程序访问目录六.在kubernetes里使用AppArmor限制容器对......
  • k8s subpath解决加载配置覆盖原目录问题,configmap与secret热更新
    问题:传统上直接挂载会直接覆盖原目录问题还原挂载配置 重启容器挂了 进入容器查看文件不见了,只剩下挂载文件了,目录被覆盖了问题解决subpath:1、当挂载目录存在多个文件,不会覆盖所有文件;2、挂载单个文件而不是整个目录。修改配置subpath热更新问题:1.cm或secret以......
  • 『国产单片机』led微型充气泵方案开发设计
    在做一个充气泵方案设计开发时,核心功能实现是我们所关注的重点。这一重点的核心又是在主控MCU上面,所以我们使用方案开发时需要考虑充气泵的测量精度和控制需求。在充气泵方案中,精确的测量和控制是至关重要的。方案开发时需要确定所需测量的参数,如气压、流量等,并选择适合的传感......
  • 基于TAE的数字钥匙自动化测试解决方案
    方案概述    在汽车发展和用户需求的推动下,汽车钥匙开始从传统的机械钥匙向数字化、智能化方向发展。目前常见的数字钥匙集成了蓝牙、NFC、UWB等技术实现了移动设备与车端的通信,可以帮助用户便捷的实现车辆功能控制。随着数字钥匙的广泛应用,相关的测试需求也进一步增加,人......
  • uni-app解决表格uni-table样式问题
    一、如何让表格文字只显示一行,超出部分用省略号表示步骤:给table设置table-layout:fixed; 列宽由表格宽度和列宽度设定。(默认是由单元格内容设定)让表格元素继承父元素宽度固定table-layout:inherit;overflow:hidden;超过部分隐藏,text-overflow:ellipsis;超出部分用省略......
  • .net6 类库 读取appsettings.json
    类库项目引入 Microsoft.Extensions.Configuration和 Microsoft.Extensions.Configuration.Json程序包以Sqlsugar读取配置文件为例:publicclassSqlsugarBase{publicstaticIConfigurationConfiguration{get;set;}staticSqlsugarBase()......