UNI-APP APP版本更新方法
UNI-APP APP版本更新方法
- 直接上代码不墨迹
直接上代码不墨迹
// 版本更新方法wgtUrlupload(){let _this = this;//系统版本升级判断接口(后台获取服务器)var urlfun = 你自己后台服务器的接口方法 判断是否需要升级// #ifdef APP-PLUS/** 锁定屏幕方向 */plus.screen.lockOrientation('portrait-primary');console.log("onLaunch锁定屏幕方向")/** 检测升级 */// 取得版本号plus.runtime.getProperty(plus.runtime.appid, function(info) {// 版本号变量持久化存储getApp().globalData.editionnum = info.version; //版本号持久化存储做其它备用// console.log("当前应用版本:" + info.version + "---" + plus.runtime.version);// console.log("appid:" +plus.runtime.appid);// console.log("appid基座版本号:" +plus.runtime.version);uni.request({url: urlfun, //接口地址。urlmethod:"POST", //传输类型data: {"appid": plus.runtime.appid,"version": plus.runtime.version,"system":uni.getStorageSync('systemname'),"editionnum":info.version,}, //必要参数// header: data.header, //https 请求头参数success: (res) => {console.log("AJAX数据请求接口--返回状态--"+JSON.stringify(res.data));var data = res.data;var status = data.status;// 判断返回结果,调用升级方法if(status == 200){// 开始调用 data = 服务器返回的数据里面有 新的版本号,下载地址_this.checkVersionToLoadUpdate(info.version,data);}else{uni.showToast({title: data.msg, duration: 1500 }); }}});})// #endif},/*** 进行版本型号的比对 以及下载更新请求* @param {Object} server_version 服务器最新 应用版本号* @param {Object} curr_version 当前应用版本号*/checkVersionToLoadUpdate:function(server_version,data){if(server_version !== data.edition){//TODO 此处判断是否为 WIFI连接状态if(plus.networkinfo.getCurrentType()!=3){uni.showToast({ title: '有新的版本发布,检测到您目前非Wifi连接,为节约您的流量,程序已停止自动更新,将在您连接WIFI之后重新检测更新', mask: true, duration: 5000,icon:"none"}); return; }else{uni.showModal({title: "版本更新",content: '有新的版本发布,检测到您当前为Wifi连接,是否立即进行新版本下载?',confirmText:'立即更新',cancelText:'稍后进行',success: function (res) {if (res.confirm) {uni.showToast({icon:"none",mask: true,title: '有新的版本发布,检测到您目前为Wifi连接,程序已启动自动更新。新版本下载完成后将自动弹出安装程序', duration: 5000, }); //设置 最新版本apk的下载链接var downloadApkUrl = data.uplodurl;var dtask = plus.downloader.createDownload( downloadApkUrl, {}, function ( d, status ) { // 下载完成 if ( status == 200 ) { plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename),{},{},function(error){ uni.showToast({ title: '安装失败', duration: 1500 }); })} else { uni.showToast({ title: '更新失败',duration: 1500 }); } }); dtask.start();} else if (res.cancel) {console.log('稍后更新');}}});}}},
## PHP 服务器后台方法
/**************************************************************************** 判断APP的应用版本是否需要升级* appid =》必要参数 __UNI__C5****** 注意你的appid 真机 与 正式的 不一样 真机为 HBuilder* system =》系统 Android || iOS* editionnum =》当前版本号* edition =》最新版本号* url =》下载地址***************************************************************************/function EditionUploadapp(){$appid = $this->request->param('appid');$system = $this->request->param('system');$editionnum = $this->request->param('editionnum');if($appid == 'HBuilder'){if ($system == 'Android') {$where['type'] = 1;# code...}if ($system == 'iOS') {$where['type'] = 2;# code...}// 数据库最新版本查询$look = db::name($this->appedition)->where($where)->order("id desc")->find();if ($look) {$data['status'] = 200;$data['edition'] = $look['edition'];$data['uplodurl'] = $look['url'];$data['msg'] = "数据查询成功";# code...}else{$data['status'] = 100;$data['msg'] = "数据查询失败";}}else{$data['status'] = 100;$data['msg'] = "appid 序列号不匹配";}return json($data);}
UNI-APP APP版本更新方法相关推荐
- uniapp App更新解决方法
uniapp App更新解决方法 最近项目碰到的app更新问题,安卓和iOS更新. 功能实现效果 安卓端:后台下载,自动弹出系统安装界面 iOS端:跳转 appStore app更新界面 1.获取用户 ...
- Android通过DownloadManager实现App的版本更新功能
1.DownloadManager介绍 DownloadManger是android 2.3(api level 9)开始 提供的用于优化处理长时间的下载操作.DownloadManager 处理Ht ...
- 安卓开发实战之app之版本更新升级(DownloadManager和http下载)完整实现
前言 本文将讲解app的升级与更新.一般而言用户使用App的时候升级提醒有两种方式获得: 一种是通过应用市场 获取 一种是打开应用之后提醒用户更新升级 而更新操作一般是在用户点击了升级按钮之后开始执行 ...
- Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net
Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net 1. 提升单例有能力的1 2. 减少工作数量2 2.1. 减少距 ...
- android获取版本号报错,Android开发:获取安卓App版本号的方法步骤
在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版本号就是必须要有的功能.Android的App版本号相关内容比iOS的App版本号内容要多,而 ...
- 5s的app显示无法连接服务器,苹果iphone5s手机无法连接App Store问题解决方法汇总...
iphone5s无法连接App Store怎么办?大家在使用iphone5s过程中可能会遇到无法连接app store的问题,那怎么办呢?本文小编就主要给大家讲解一下如何解决iphone5s无法连接A ...
- vue js 和原生app调用回调方法问题
vue js 和原生app调用回调方法问题 import Vue from 'vue' export default { name: 'list', components: { }, data: () ...
- 【uni-app】使用定义在App.vue的方法
[uni-app]使用定义在App.vue的方法 前言 在methods中添加(推荐) 在globalData中添加方法(不建议) 前言 接手了一个小程序项目,考虑到后期可能会扩展到APP上,筛选技术 ...
- 安卓设置keychain_Android 7.0 SEAndroid app权限配置方法
1.SEAndroid app分类 SELinux(或SEAndroid)将app划分为主要三种类型(根据user不同,也有其他的domain类型): 1)untrusted_app 第三方app,没 ...
最新文章
- Python的学习过程中not enough values to unpack (expected 2, got 1)解决方案
- Windows自带的杀进程工具
- 人生苦短,Python之父要解开这个困惑
- 大数据学习笔记04:单机模式使用ZooKeeper
- 11.LNMP基础架构
- 江苏卫视益智类节目《一战到底》不益智
- 概率论于数理统计(陈希孺)笔记2.3
- 转型微服务架构完整实施方案
- gogo系统更新无服务器,gogo云服务器
- 攻防世界 easyphp
- 螺旋城的灾难完全攻略及地图
- 前端下载文件流PDF文件显示空白 或 无法打开
- appinventor网络编程php,AppInventor离线版下载
- 最强大脑记忆曲线(13)--应用程序的加密及授权码的实现
- 气传导耳机是不是智商税?气传导耳机靠谱吗?
- async/await面试题
- 黑马程序员————高新技术————内省(了解JavaBean)
- 好书分享 《将来的你一定感谢现在拼命的自己》
- 单元测试打桩之Mockito
- 添加打印机出现错误代码:0x000006d9
热门文章
- 识别三极管和场效应管引脚
- 【DG】基于同一个主机建立物理备库和逻辑备库 (三)
- Python微信防撤回,基于itchat模块
- HTML+CSS网页设计期末课程大作——体育排球(5页面)
- python stdin.write_向stdin写入大量数据
- 苹果的名字测试软件,教你iOS12人脸识别测颜值捷径安装使用教程及iPhone XR修改AppleID姓名教程...
- 【aviutl/lua】BPM打点
- 嘟嘟牛mysql 密码_嘟嘟牛管家数据转化为万象、Pubwin的操作步骤
- Docker设置阿里云镜像加速器
- 天津市高中计算机会考,天津高中会考科目有哪些