当前位置: 首页 > news >正文

高碑店市建设局网站上海网站建设费用

高碑店市建设局网站,上海网站建设费用,wordpress 截断,石家庄的网站开发公司app检查更新与升级 参考链接#xff1a; 升级中心uni-upgrade-center - App uni-admin h5 api App资源在线升级更新 uni-app使用plus注意事项 关于在线升级#xff08;WGT#xff09;的几个疑问 什么是升级中心uni-upgrade-center uniapp官方开发的App版本更新的插件#…app检查更新与升级 参考链接 升级中心uni-upgrade-center - App uni-admin h5 api App资源在线升级更新 uni-app使用plus注意事项 关于在线升级WGT的几个疑问 什么是升级中心uni-upgrade-center uniapp官方开发的App版本更新的插件基于unicloud的后端服务 因为是开源的通过修改源码可以实现请求java等其他后端服务后续的源码解析章节会介绍 升级中心分为两个部分 前台检测更新 uni-upgrade-center-app 后台管理系统 uni-admin 1.9.3 uni-admin 已内置 升级中心直接使用即可。并且云函数 upgrade-center 废弃使用 uni-upgrade-center 云函数。uni-upgrade-center Admin管理后台 (uni-admin 1.9.3 已内置此插件不再维护) 1.9.0 uni-admin 1.9.2 请前往 Gitee 下载 tag v0.5.1 版本使用uni-admin 1.9.0请前往 Gitee 下载 tag v0.4.2 版本使用 简单来说如果是新版的uni-admin直接用升级中心即可 怎么使用uni-upgrade-center 使用我觉得并不难跟着官方文档走即可 简单来说就是你的app项目安装 uni-upgrade-center-app这个插件同时你需要另外新建一个uni-admin项目用来上传并管理app项目的更新包app项目通过unicloud请求更新包 官方文档 但是如果不想使用unicloud想换成java等其他后端服务或者想了解app检查更新与升级的代码是如何编写的阅读uni-upgrade-center源码是十分有必要的。 uni-upgrade-center源码阅读 十分推荐阅读uni-upgrade-center源码 通过一步步阅读uni-upgrade-center源码基本能完全学会如何写app检查更新与升级的代码 源码前端功能实现主要分为三个文件依次阅读 utils/call-check-version.jsutils/call-check-version.jspages/upgrade-popup.vue utils/call-check-version.js 代码很简单通过h5 api获取应用信息把应用信息传递给uniCloud云函数 同理如果不使用云函数传给java等后端服务的话替换云函数部分代码就可以了 export default function () {// #ifdef APP-PLUSreturn new Promise((resolve, reject) {// 根据当前应用的appid获取appid对应的应用信息plus.runtime.getProperty(plus.runtime.appid, function (widgetInfo) {const data {action: checkVersion,appid: plus.runtime.appid,appVersion: plus.runtime.version,wgtVersion: widgetInfo.version}console.log(data: , data);// 如果传给java等后端服务改下方代码uniCloud.callFunction({name: uni-upgrade-center,data,success: (e) {console.log(e: , e);resolve(e)},fail: (error) {reject(error)}})})})// #endif// #ifndef APP-PLUSreturn new Promise((resolve, reject) {reject({message: 请在App中使用})})// #endif }plus.runtime.appid 当前应用的APPID String 类型 只读属性 注意如果是在HBuilder真机运行获取的是固定值HBuilder需要提交App云端打包后运行才能获取真实的APPID值 plus.runtime.getProperty 获取指定APPID对应的应用信息 参数 appid: ( String ) 必选 应用的AppidgetPropertyCB: ( GetPropertyCallBack ) 必选 获得应用信息成功回调函数 示例 // 获取应用信息 function getAppInfo() {plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) {//appid属性var wgtStr appid:wgtinfo.appid;//version属性wgtStr br/version:wgtinfo.version;//name属性wgtStr br/name:wgtinfo.name;//description属性wgtStr br/description:wgtinfo.description;//author属性wgtStr br/author:wgtinfo.author;//email属性wgtStr br/email:wgtinfo.email;//features 属性wgtStr br/features:wgtinfo.features;console.log( wgtStr );} ); }utils/call-check-version.js 官方实现了两种方式静默更新和提示更新 import callCheckVersion from ./call-check-version// 推荐在App.vue中使用 const PACKAGE_INFO_KEY __package_info__export default function() {// #ifdef APP-PLUSreturn new Promise((resolve, reject) {callCheckVersion().then(async (e) {if (!e.result) return;const {code,message,is_silently, // 是否静默更新url, // 安装包下载地址platform, // 安装包平台type // 安装包类型} e.result;// 此处逻辑仅为实例可自行编写if (code 0) {// 腾讯云和阿里云下载链接不同需要处理一下阿里云会原样返回const {fileList} await uniCloud.getTempFileURL({fileList: [url]});if (fileList[0].tempFileURL)e.result.url fileList[0].tempFileURL;resolve(e)// 静默更新只有wgt有if (is_silently) {uni.downloadFile({url: e.result.url,success: res {if (res.statusCode 200) {// 下载好直接安装下次启动生效plus.runtime.install(res.tempFilePath, {force: false});}}});return;}/*** 提示升级一* 使用 uni.showModal*/// return updateUseModal(e.result)/*** 提示升级二* 官方适配的升级弹窗可自行替换资源适配UI风格*/uni.setStorageSync(PACKAGE_INFO_KEY, e.result)uni.navigateTo({url: /uni_modules/uni-upgrade-center-app/pages/upgrade-popup?local_storage_key${PACKAGE_INFO_KEY},fail: (err) {console.error(更新弹框跳转失败, err)uni.removeStorageSync(PACKAGE_INFO_KEY)}})return} else if (code 0) {// TODO 云函数报错处理console.error(message)return reject(e)}return resolve(e)}).catch(err {// TODO 云函数报错处理console.error(err.message)reject(err)})});// #endif }/*** 使用 uni.showModal 升级*/ function updateUseModal(packageInfo) {const {title, // 标题contents, // 升级内容is_mandatory, // 是否强制更新url, // 安装包下载地址platform, // 安装包平台type // 安装包类型} packageInfo;let isWGT type wgtlet isiOS !isWGT ? platform.includes(iOS) : false;let confirmText isiOS ? 立即跳转更新 : 立即下载更新return uni.showModal({title,content: contents,showCancel: !is_mandatory,confirmText,success: res {if (res.cancel) return;// 安装包下载if (isiOS) {plus.runtime.openURL(url);return;}uni.showToast({title: 后台下载中……,duration: 1000});// wgt 和 安卓下载更新downloadTask uni.downloadFile({url,success: res {if (res.statusCode ! 200) {console.error(下载安装包失败, err);return;}// 下载好直接安装下次启动生效plus.runtime.install(res.tempFilePath, {force: false}, () {if (is_mandatory) {//更新完重启appplus.runtime.restart();return;}uni.showModal({title: 安装成功是否重启,success: res {if (res.confirm) {//更新完重启appplus.runtime.restart();}}});}, err {uni.showModal({title: 更新失败,content: err.message,showCancel: false});});}});}}); }静默更新 可以看出静默更新分为三步 后端提供一个下载更新包的url前端uni.downloadFile该url地址下载好后前端调用plus.runtime.install安装更新包 // 静默更新只有wgt有if (is_silently) {uni.downloadFile({url: e.result.url,success: res {if (res.statusCode 200) {// 下载好直接安装下次启动生效plus.runtime.install(res.tempFilePath, {force: false});}}});return;}强制更新 首先我们需要知道的是plus.runtime.install成功后就已经安装完更新包了用户下次打开app就会是最新版的app这里强制更新的意思是是否立刻重启app强制用户立刻使用最新版app plus.runtime.install后有三种应用场景这里官方写的很好三种场景都处理了 不征求客户意见直接重启app强制用户立刻使用最新版征求客户意见如果重启用户使用最新版如果不重启等用户下次打开app显示最新版不重启等用户下次打开app显示最新版 // 安装下载的安装包下次启动生效plus.runtime.install(res.tempFilePath, {force: false}, () {// is_mandatory是后端返回的控制是否强制更新的变量// 强制更新就是强制重启app否则就是用户下次打开app才会更新// 强制更新体验不好还是下次打开更新会好很多if (is_mandatory) {// 更新完重启appplus.runtime.restart();return;}uni.showModal({title: 安装成功是否重启,success: res {if (res.confirm) {// 更新完重启appplus.runtime.restart();}}});}, err {uni.showModal({title: 更新失败,content: err.message,showCancel: false});});跳转应用商店 后端返回安装包平台和安装包类型安装包类型是否是wgt如果不是判断安装包平台是否包含iOS调用第三方程序打开url安装iOS更新包iOS是跳转更新其他是下载更新ios需要上架、通过市场安装所以需要第三方程序打开url plus.runtime.openURL表示调用第三方程序打开url进行安装即跳转应用商店功能 function updateUseModal(packageInfo) {const {title, // 标题contents, // 升级内容is_mandatory, // 是否强制更新url, // 安装包下载地址platform, // 安装包平台type // 安装包类型} packageInfo;let isWGT type wgtlet isiOS !isWGT ? platform.includes(iOS) : false;let confirmText isiOS ? 立即跳转更新 : 立即下载更新return uni.showModal({title,content: contents,showCancel: !is_mandatory,confirmText,success: res {if (res.cancel) return;// 安装包下载if (isiOS) {plus.runtime.openURL(url);return;}...}}); }用户取消下载 https://uniapp.dcloud.net.cn/api/request/network-file.html#downloadfile var downloadTask uni.downloadFile({url: https://www.example.com/file/test, //仅为示例并非真实接口地址。complete: () {} }); downloadTask.abort();如何打包wgt资源包 一、更改项目manifest.json中的应用版本名称与应用版本号 二、HBuilderX发行原生App-制作应用wgt包确定 三、开发测试的时候记得再改回原先的应用版本名称与应用版本号不然版本跟线上的相同安装更新包的时候就会出现WGT安装包中manifest.json文件的version版本不匹配本地测试不了更新效果 如何查看wgt文件manifest.json wgt包生成后会是.wgt后缀名更改其后缀名为.zip再解压就可以查看manifest.json了 报错解决WGT安装包中manifest.json文件的version版本不匹配 manifest.json中的版本大于等于了线上的版本自行排查即可 通过uni-admin上传wgt资源包 uni-admin报错解决超级管理员已存在 是因为admin账户是旧的跟appid对不上删除旧的admin账户重新创建
http://www.hkea.cn/news/14262015/

相关文章:

  • 北京做网站公司电话电脑培训机构
  • 相亲网与做网站免费推广平台有哪些 请一一例举
  • 咸宁网站建设多少钱企业网站不备案可以吗
  • wordpress 留言板 插件资深seo顾问
  • 湖南网站营销seo哪家好wordpress代码演示
  • 做数据收集网站做网站 贴吧
  • 江苏省建设厅网站证件查询wordpress 分栏间距
  • 蓝色经典通用网站模板html源码下载推荐一个可以看片儿的浏览器
  • 网站开发 发送邮件功能大连凯杰建设有限公司网站
  • 太仓网站建设有限公司破解网站后台
  • 贵阳城乡建设学校网站电话营销网站建设
  • 西安网站开发方案温江网站开发
  • 一起做网站下载数据包网站营销与推广方案
  • 丰台做网站公司腾讯广告投放端提供的建站工具有
  • 制作公司网站流程建筑工程网格化管理实施方案
  • 网站美工费用网站建设的想法和意见
  • 中山网页建站模板网络广告策划的流程顺序为
  • 电商网站 cms云南网络营销seo
  • 免费建立平台网站把插钉机子拍下怎么做网站
  • 网站怎么建设商城织梦网站下载
  • 17网站一起做网店官网网站备案密码重置申请表
  • 速卖通网站怎么做推广广州十大软件公司排名
  • 新沂徐州网站开发浙江今天的新消息
  • 装饰公司网站开发做网站链接
  • 海南建设大厅网站合肥网站建设程序
  • 如何进行电子商务网站建设西湖区网站建设
  • 怎么做网站的步骤wordpress get请求参数
  • 佛山外贸网站制作公司设计网站意味着什么
  • 网站建设技术流程图奔驰高端品牌
  • 个体户做网站杭州建设监理行业协会