相关文章推荐
笑点低的机器猫
·
cv2 获取图片亮度值_pychram ...
·
5 月前
·
才高八斗的警车
·
windows中使用CMake和Eclips ...
·
1 年前
·
爱喝酒的草稿纸
·
xutil post 414. ...
·
1 年前
·
打酱油的帽子
·
anaconda安装perl-火山引擎
·
1 年前
·
礼貌的凉面
·
APP单选功能如何用Axure画出来? | ...
·
1 年前
·
Code
›
升级/更新方案 · uniapp · 看云
https://www.kancloud.cn/wangking/uniapp/1877001
火爆的凳子
5 月前
> 使用 uni-app 开发,可将代码编译到iOS、Android、微信小程序等多个平台,升级时也需考虑多平台同步升级。 > * uni-app发布为小程序的升级模式较简单,只需将开发完的代码提交小程序后台,待审核通过后用户将自动升级 > * iOS/Android App 的升级需开发者自己处理,本文主要简介 App 的整包升级模式。 > App热更新(升级包方式)另见文档:http://ask.dcloud.net.cn/article/35667 [TOC] ## 实现流程 > 请求地址:https://www.example.com/update > 请求数据: ~~~json "appid": plus.runtime.appid, "version": plus.runtime.version > 响应数据: ~~~json "status":1,//升级标识,0:无需升级;1:建议更新;2:强制更新 "note": "修复bug1;\n修复bug2;",//release notes "url": "http://www.example.com/uniapp.apk" //更新包下载地址 ## 客户端实现 > App启动时,向服务端上报当前版本号,服务端判断是否提示升级。 > 在App.vue的onLaunch中,发起升级检测请求 ### 建议更新 ~~~javascript onLaunch: function () { //#ifdef APP-PLUS var server = "https://www.example.com/update"; //检查更新地址 var req = { //升级检测数据 "appid": plus.runtime.appid, "version": plus.runtime.version uni.request({ url: server, data: req, success: (res) => { if (res.data.status === 1) { uni.showModal({ //提醒用户更新 title: "更新提示", content: res.data.note, success: (res) => { if (res.confirm) { plus.runtime.openURL(res.data.url); //#endif > **注意:** App的升级检测代码必须使用条件编译,否则在非App环境由于不存在plus相关API,将会报错。 ### 强制更新 > 参考上面的方法,把showModel换成自己写的一个弹窗,只有升级按钮,无关闭按钮。这样就强制更新了。 > 注意uniapp的app.vue不能引入任一组件,不然打包就会报错。 > 市场里也有很多插件,也可以直接使用,如:https://ext.dcloud.net.cn/plugin?id=543 (可分安装包,升级包。安卓是在应用内下载,不跳转web) ## 服务端实现 > 根据客户端上报的版本号,比对服务端最新版本号,决定是否需要升级,若需升级则返回升级信息(rease notes、更新包地址等) header("Content-type:text/json"); $appid = $_GET["appid"]; $version = $_GET["version"]; //客户端版本号 $rsp = array("status" => 0); //默认返回值,不需要升级 if (isset($appid) && isset($version)) { if ($appid === "__UNI__123456") { //校验appid if ($version !== "1.0.1") { //这里是示例代码,真实业务上,最新版本号及relase notes可以存储在数据库或文件中 $rsp["status"] = 1; $rsp["note"] = "修复bug1;\n修复bug2;"; //release notes $rsp["url"] = "http://www.example.com/uniapp.apk"; //应用升级包下载地址 echo json_encode($rsp); exit; ## 常见问题 版本检测需要打包app,真机运行基座无法测试。因为真机运行的plus.runtime.version是固定值。 > 参考文档: > https://www.jianshu.com/p/219fd6b914d3 > https://ask.dcloud.net.cn/article/34972 > https://ask.dcloud.net.cn/article/35667)
UNI核心介绍
flex布局
自定义组件
组件之间的数据传输
自定义头部
节点信息 (SelectorQuery)
vuejs基础语法
页面跳转以及参数传递
事件的监听注册以及触发
css3动画
block的妙用
mixin (混入)
uniapp快捷键
vuex状态管理
获取服务提供商
启动页 / 启动界面
tabbar配置
头部导航栏基础设置
上拉下拉(刷新/加载)
第三方登录
第三方分享
推送通知 之 unipush
scroll-view双联动
配置iOS通用链接(Universal Links)
本地缓存操作
升级/更新方案
搜索页实现
canvas绘图助手
第三方支付————todo
清除应用缓存
uniapp与webview的实时通讯
视频-----todo
聊天----todo
长列表swiper左右切换
第三方插件
uview
mescroll
uCharts (图表)
无名 (更新插件)
第三方模版
自定义基座
要封装的方法
缓存 cache.js
请求接口 request.js
工具类 util.js
小程序登录 xcxLogin.js
版本更新 update.js
更新插件----todo
语音识别 (含上传)
百度语音合成播报接口
官方常用组建
input 输入框
image 图片
audio 音频
picker 选择器
video 视频
scroll-view 滚动视图
推荐文章
笑点低的机器猫
·
cv2 获取图片亮度值_pychram cv2获取连通区域质心处的亮度-CSDN博客
5 月前
才高八斗的警车
·
windows中使用CMake和Eclipse开发Qt程序遇到的问题 - onehap - 博客园
1 年前
爱喝酒的草稿纸
·
xutil post 414. onError: errorCode: 414, msg: Request-URI Too Long-腾讯云开发者社区-腾讯云
1 年前
打酱油的帽子
·
anaconda安装perl-火山引擎
1 年前
礼貌的凉面
·
APP单选功能如何用Axure画出来? | 人人都是产品经理
1 年前