跨平台应用开发进阶(三):uniapp实现资源在线升级/热更新一前言使用uniapp开发跨终端应用,可将

android系统使用包名(packagename)来判定应用程序的同一性,但是由于包名可以由开发者自由设置,为了保护应用程序不被其他开发者开发的同包名应用覆盖,用于发布的Android应用程序需要加上开发者签名。签名是保证app不被第三方恶意替换。

在应用程序被升级的时候,Android系统将会验证被升级的应用程序包与升级后的应用程序包是否使用了同样的开发者签名,如果一致,该应用程序可以被升级;如果不一致,那么将被视为非同一开发者开发的应用程序,用户需要先卸载已经安装的应用,然后再安装新应用。在卸载的过程中,应用在android系统中所保存的设置信息(SavedPreferences)将被删除,以保护应用本地保存的资料不被盗取。

根据现有应用市场的升级规则,包名一致,才会提醒升级,升级时,签名不一致,无法升级。

检测到包名一致且版本不一致——>提示升级——>签名不一致——>升级失败。

包名一致签名一致,就升级成功了。

HBuilderX1.6.5起,uni-app支持生成App资源升级包wgt。

wgt文件称为使用浏览器作为一个小型的Web应用程序部件,这些文件包含有关部件配置,图像,索引,样式表,JavaScript等信息,通常是在一个压缩归档格式。解压后的文件目录结构如下:

全量apk包目录结构如下:

首先,更新manifest.json中的版本号。比如之前是1.0.0,那么新版本应该是1.0.1或1.1.0。

然后,在HBuilderX中生成升级包(wgt)。

菜单->发行->原生App-制作移动App资源升级包

生成结束会在控制台告知升级包的输出位置。

应用升级需要服务端与客户端配合完成,下面以本地测试过程中的操作举例说明:

传入参数

返回参数

下面是一个简单的服务端判定的示例,仅做参考,实际开发中根据自身业务需求处理。

客户端检测升级在App.vue的onLaunch中检测升级,代码如下:

注意事项

但实际上热更新使用非常普遍,不管是原生开发中还是跨平台开发。

Apple曾经禁止过jspatch,但没有打击其他的热更新方案,包括cordovar、reactnative、DCloud。封杀jspatch其实是因为jspatch有严重安全漏洞,可以被黑客利用,造成黑客可篡改其他App的数据。

使用热更新需要注意:

用户对于热更新及整包更新的感知几乎是无差别的,同样需要主动触发用户下载安装,只不过包的大小不一致。

接口约定如下数据接口约定仅为示例,开发者可以自定义接口参数。

请求方法:GET

请求数据:

{"appid":plus.runtime.appid,"platform":platformFlag,"version":plus.runtime.version}其中,platformFlag为手机系统标识,可通过如下方法获取:

asyncinitSystemInfo(){ uni.getSystemInfo({ success(e){ console.log('Thesysteminfoeis:',e) //#ifndefMP getApp().globalData.deviceInfo=e Vue.prototype.StatusBar=e.statusBarHeight; if(e.platform==='android'){ getApp().globalData.deviceInfo.platformFlag='0'//Android系统标识 Vue.prototype.CustomBar=e.statusBarHeight+50; }else{ getApp().globalData.deviceInfo.platformFlag='1'//IOS系统标识 Vue.prototype.CustomBar=e.statusBarHeight+43; } //#endif //#ifdefMP-WEIXIN Vue.prototype.StatusBar=e.statusBarHeight; constcustom=wx.getMenuButtonBoundingClientRect(); Vue.prototype.Custom=custom; Vue.prototype.CustomBar=custom.top-e.statusBarHeight; //#endif //#ifdefMP-ALIPAY Vue.prototype.StatusBar=e.statusBarHeight; Vue.prototype.CustomBar=e.statusBarHeight+e.titleBarHeight; //#endif } });},响应数据:

在App.vue的onLaunch中,发起升级检测请求,如下:

需维护一张数据表,用于维护APP版本信息,主要字段信息如下:

根据客户端接收的版本号,比对服务端最新版本号,决定是否需要升级,若需升级则返回升级信息(rleasenotes、更新包地址等)

开发者可以根据服务端开发语言,自己实现升级检测逻辑,如下是一个php示例代码:

APP发版时,应注意维护manifest.json中versionName、versionCode字段,以免影响版本升级。

plus.runtime.getProperty(plus.runtime.appid,function(widgetInfo){ console.log(widgetInfo.version);})四、Uni-app版本升级中心uni-app提供了一整套版本维护框架,包含升级中心uni-upgrade-center-Admin、前台检测更新uni-upgrade-center-app。

uni-app提供了版本维护后台应用升级中心uni-upgrade-center-Admin,升级中心是一款uni-admin插件,负责App版本更新业务。包含后台管理界面、更新检查逻辑,App内只要调用弹出提示即可。

在上传安装包界面填写此次发版信息,其中包地址可以选择手动上传一个文件到云存储,会自动将地址填入该项。

如果是发布苹果版本,包地址则为应用在AppStore的链接。

升级中心有以下功能点:

uni-upgrade-center-app负责前台检查升级更新。

检测更新视图如下图所示:

该插件提供如下功能:

注意:在手机基座上运行时获取到的版本号和appid是hbuilder和hbuilder的版本需要在文件里面手动设置。

THE END
1.一门APP在线一键APP开发工具APP打包APP封装APP生成一门APP开发平台(www.yimenapp.com)致力于H5混合APP制作框架领域的前沿探索,专注轻便的应用开发解决方案,提供基于HTML前端页面在各种应用层级的端延展,包括安卓端,IOS端,windows端,MAC端,以及各种TV和物联网端的跨平台APP开发工具。https://www.yimenapp.com/
2.APP在线开发,APP在线生成,电商APP开发,商城APP制作,APP在线生成万动力,8年以上APP开发经验.无需懂代码就可以在线开发、制作APP软件,5分钟快速生成高质量APP,助力企业向数字化商业转型!http://www.wandongli.com.cn/
3.介绍几款免费APP在线制作社开发生成工具在线app制作平台虽然这些在线开发平台都提供了系统素材,应用公园里更是有很丰富的ICON供选,但谁会喜欢看和别人一样的东西呢?所以开发App应该自己准备个性化素材,页面内容、按钮效果、导航图片等,都要根据App自身风格去准备。好看是一点,更重要的是可以提高上传到应用市场的通过率,App才会获得更多下载量。这个10万下载量的减肥计划Apphttps://blog.csdn.net/enweitech/article/details/52313895
4.iOS在线开发iOSAPP在线开发平台平台搭建工具教程iOS 在线开发平台哪个好用?有没有好的iOS APP开发工具?现在随着科技的不断发展,已经不需要自己去敲代码开发手机APP。在应用公园自己就可以在线完成一个iOS APP开发制作。应用公园拥有上百个http://www.apppark.cn/app_123.html
5.制作app在线平台好用的推荐技术博客制作一个App需要多种技术与工具,包括前端开app在线制作有用吗发、后端开发、数据库管理以及用户界面设计等等。现在有很多提供在线平台的工具和服务,可以帮助 开发者快速制作App。下面是一个关于制作App在线平台的详细介绍。 1. 前端开发: 在制作App的过程中,前端开发是至关重在线买菜app开发要的一部分。前端开发主要https://www.yimenapp.net/knowledge/blog-45119.html
6.微博–随时随地发现新鲜事#我被双轨剧组坑了##虞书欣##双轨# 这件事情,我本来不想提了,但今天看到双轨剧组发的微博里面对解散原剧组及剧组人员权益保护一事只字未提,怒火中烧。事情原委,我本是广告导演,经朋友推荐,感谢赵晓磊导演邀请,作为双轨的B组车戏导演参与这部剧。从9月中旬开始筹备,到12月初,整整三个月。车戏 ? 展开https://www.weibo.com/
7.线上开发H5App设计(线上开发H5)App开发接入智慧生活App支持线上开发的品类 功能简介 极速模式 高级模式 由极速模式切换成高级模式 前提条件 在线设计H5 配置组件逻辑(可选) 展开章节 通过平台提供的低代码开发工具,在线完成智慧生活App H5的设计与开发。 支持线上开发的品类 线上开发支持的品类如下: 通信类型为Wi-Fi:智能照明、智能插座、空气净化器、净水https://device.harmonyos.com/cn/docs/documentation/DevicePartner-Guides/ai-life-app-online-dev-0000001119759354
8.App在线开发,如何轻松打造个性化移动应用?在线开发应用程序(App)是一种通过互联网进行软件开发的方式,它允许开发者在远程服务器上编写、测试和部署代码,而无需在本地计算机上安装任何软件或依赖项,这种方式可以提高开发效率,降低成本,并且可以随时随地进行开发工作。 以下是一些关于在线开发应用程序的详细信息: https://www.kdun.cn/ask/724650.html
9.手机应用开发平台哪个好?全面解析最佳选择苹果app开发平台 苹果的Xcode软件是iOS和macOS应用开发的得力工具。这款软件由苹果公司研制,具备统一的用户界面设计。在这里,编码、测试和调试等所有工作都能在一个窗口内完成,操作起来非常便捷,就像在综合服务大厅办理事务一样。 Xcode已经更新了许多次,现在已经有28个版本了。几乎所有的苹果应用开发都离不开它,许多开https://www.7claw.com/2801737.html
10.HTML5开发者福利贴好用的跨平台APP开发工具保举【择要】就html5所呈现出的上风来看,开发者更青睐于开发html5app应用。那么接下来商侣软件app开发公司的小编就来向大家保举几款好用的跨平台APP开发工具,让仅有HTML知识或是懂一些CSS和javascript的开发者也能够在很短时间内完成 在移动互联网发展时期,APP开发软件一向都是时代的弄潮儿,不管是HTML5 APP开发照http://www.bqsem.com/contribution/wapnews/78.html
11.线上教育平台搭建(H5快速搭建APP)线上教育平台搭建(h5、快速搭建、app),线上教育搭建模式玩法,yixun-apr168,线上教育搭建商城app开发 零基础搭建在线教育网校平台的三种方式:自己开发程序、购买现成的程序或入驻第三方平台。 1、自己开发搭建的优点在于可以量身定制。根据自身特点进行功能等搭建。如果教育机构自己组建技术团队开发程序,无疑能大的满足自https://product.11467.com/info/13929954.htm
12.在线app开发平台在线APP制作平台驿站APP(www.yizhanapp.cn)提供APP在线制作,APP在线开发,可一键在线制作安卓APP,一键在线制作苹果APP,协助APP软著申请,支持APP上架各大应用商店http://www.yizhanapp.cn/index.html
13.移动App在线开发平台APICloud统软云APP开发APP开发它可以通过类似的统软云快速实现。平台中有数百套适用于热门行业的完整应用模板,如移动商城应用模板、酒店应用模板、旅游应用模板等。无论是界面设计还是功能体验,开发应用软件开发公司都需要数月时间。 统软云是一种“云集成”,可用于专业App。统软云开发平台用于以Web语言开发iOS和AndroidApp,大大降低了开发难度,并https://www.unisoft.cn/service/app/e73591b26b0561a1.html
14.时代在线时代在线开放生成App接口,为开发者提供生成服务。快速实现App在线开发与维护,减少90%的App售后维护时间。同时免费提供在线App生成平台源码,无技术也可以拥有App开发生成平台。wap转App打包,淘宝客,ishop等http://www.6d123.net/
15.随手APP随手APP开放生成App接口,为开发者提供生成服务。快速实现App在线开发与维护,减少90%的App售后维护时间。同时免费提供在线App生成平台源码,无技术也可以拥有App开发生成平台。wap转App打包,淘宝客,ishop等http://www.suishouapp.com/
16.androidapp在线开发安卓在线开发平台android app在线开发 安卓在线开发平台 Rexsee开源Android开发平台是市面上唯一一款开源的Android开发平台,基于Android的HTML5开发平台,可以帮助程序猿们使用HTML5+JavaScript来开发各种app应用,下载包里面给大家提供了Rexsee jar包、源代码、开发手册,可以帮助大家更好的学习rexsee,有需要的欢迎下载使用。https://blog.51cto.com/u_12947/10645576
17.app在线开发平台在线开发高级组件华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:app在线开发平台。https://support.huaweicloud.com/topic/230472-1-A
18.app在线生成平台免费app在线生成平台免费是选择学习原生开发,研究Java、 Object-C、C#等语言,还是选择继续使用网页开发,容忍HTML5功能的局限性?就在开发者左右为难的情况下Hybrid App作为一个折中的解决方案诞生了。那么究竟什么才是Hybrid App呢? API接口,在线低代码开发,哪家强? 低代码开发平台(LCDP)是无需编码(0代码)或通过少量代码就可以快速生成应用https://cloud.tencent.com/developer/information/app%E5%9C%A8%E7%BA%BF%E7%94%9F%E6%88%90%E5%B9%B3%E5%8F%B0%E5%85%8D%E8%B4%B9
19.秒制作秒制作开放生成App接口,为开发者提供生成服务。快速实现App在线开发与维护,减少90%的App售后维护时间。同时免费提供在线App生成平台源码,无技术也可以拥有App开发生成平台。wap转App打包,淘宝客,ishop等http://app.miaozhizuo.cn/madeapp/index.html
20.app在线生成平台免费推荐一门APP开发平台App在线生成平台是一种允许用户通过网页界面快速创建和发布移动应用程序的在线服务。这些平台为开发者提供了一个免费的方式,以便快速开发和发布应用程序,无需具备专业的编程知识。在本文中,我们将探讨一下这些平台的原理,以及如何利用它们来制作一个基本的APP。 http://www.yimenyun.cn/emen/372/
21.手机APP制作平台APP制作平台APP制作网站手机APP制作平台,原生手机APP制作平台,APP制作平台,手机APP制作平台工具,APP制作网站,原生APP制作网站,免费APP制作网站,更好的免费APP制作平台尽在叮铛应用APP制作平台http://www.ddapp.com/
22.心雨在线科技深圳市心雨在线科技开发有限公司成立于2005年,是一家专注于互联网品牌项目开发的综合型企业。主营开发:APP项目开发、元宇宙项目、NFT数藏平台、3D游戏、虚拟数字人、小程序平台、级别制度营销平台、物联网、管理应用平台、高端网站建设及改版、H5营销活动平台等项目。上千https://www.xyzxkj.com/index/cases.html
23.5分钟在线快速生成app推荐使用一门APP开发平台现如今,移动应用搭建代挂网站怎么生成app无处不在,越来越多的企业和个人都想要拥有自己的专属APP。然而,开发一个APP需要专业的技能和经验,以及大量的时间投入。幸运的是,通过在线快速生成APP工具,我们可以在短短五分钟内创建一个功能齐全的基础APP。接下来,让我们了解一下这种在线生成APP的原理和详细步骤。 http://www.edabao.net/dabao/jishu/344/
24.App开发手机APP制作App在线制作平台首选品牌元岳信息科技--手机APP在线制作平台,专注于App客户端开发等相关领域,专业化服务提供优质的手机App研发服务.主要包括:手机App开发,Android软件开发,iPhone/iPad软件开发,HTML5开发等http://yuanyuekj.com/portal/index/app.html
25.个人APP制作指南及百度SiteApp案例详解Appbyme(安米网)是摩讯公司开发的一款应用生成工具,2012年3月份上线,截止现在,Appbyme已经运营3000款APP,用户数量超过800万。目前支持的平台有iOS和Android。 应用公园 网址:http://www.apppark.cn/ 应用公园是免费的手机应用在线制作平台,不需编程,纯图形化操作,人人都能快速打造自己的专属手机应用,兼容iPhone、androihttp://91yunying.com/1227.html