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

程序员网站个体户年报网上申报流程

程序员网站,个体户年报网上申报流程,苏州网信信息科技股份有限公司,黄山注册公司在小程序开发中,我们会不可避免的涉及到小程序新版本迭代的问题,因为小程序的更新机制是异步的,新版本发布后并不会立刻应用到所有的现有用户,部分用户用的可能还是原来的旧版本,但如果是急需修复的 bug 或其他急需上线…

在小程序开发中,我们会不可避免的涉及到小程序新版本迭代的问题,因为小程序的更新机制是异步的,新版本发布后并不会立刻应用到所有的现有用户,部分用户用的可能还是原来的旧版本,但如果是急需修复的 bug 或其他急需上线的需求,我们就需要了解小程序的运行和更新机制,对小程序进行强制更新了。

运行机制

基本概念

  • 小程序启动后,界面被展示给用户,此时小程序处于前台状态
  • 用户关闭小程序或离开微信,在短时间内小程序并不会被销毁,此时小程序处于后台状态
  • 这个时候如果用户再次进入到小程序,就是从后台状态切换到前台状态,此时小程序是热启动
  • 但如果用户过了很久都没有再进入小程序,那么这个时候小程序可能被销毁[1],等用户再次打开这个小程序,此时小程序需要重新加载启动,即冷启动
  • 如果用户是首次打开小程序,小程序也需要重新加载启动,那么这种情况也属于冷启动

生命周期

如果想要了解小程序的生命周期,可以看这篇文章

冷启动的生命周期
  • 冷启动的小程序,会先执行app.js中的onLaunchonShow,然后才是页面的生命周期:onLoadonShowonReady
热启动的生命周期
  • 热启动的小程序,会先执行app.js中的onShow,然后执行页面的生命周期:onShow

更新机制

小程序的更新分为两种情况,一种是未启动时更新,一种是启动时更新。

未启动时更新

  • 在发布新版本的小程序之后,如果某个用户本地有小程序的历史版本,此时打开的可能还是旧版本。
  • 微信客户端会有若干个时机去检查本地缓存的小程序有没有更新版本,如果有则会静默更新到新版本。
  • 总的来说,开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后 24 小时之内下发新版本信息到用户。
  • 用户下次打开时会先更新最新版本再打开

启动时更新

  • 小程序每次冷启动时,都会检查是否有更新版本,如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动。
  • 新版本的小程序需要等下一次冷启动才会应用上
  • 如果需要马上应用最新版本,可以使用wx.getUpdateManager进行处理。

强制更新

wx.getUpdateManager

  • wx.getUpdateManager(): 获取全局唯一的版本更新管理器,用于管理小程序更新,返回值是UpdateManager对象。
    • UpdateManager.onCheckForUpdate():监听向微信后台请求检查更新结果事件。微信在小程序冷启动时自动检查更新,不需由开发者主动触发。返回值是个布尔值hasUpdate
    • UpdateManager.onUpdateReady():监听小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调。
    • UpdateManager.applyUpdate():强制小程序重启并使用新版本。在小程序新版本下载完成后(即收到onUpdateReady回调)调用。
    • UpdateManager.onUpdateFailed():监听小程序更新失败事件。小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)后回调。

代码实现

  • 微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试
  • 小程序开发版/体验版没有「版本」概念,所以无法在开发版/体验版上测试版本更新情况
// app.js
onLaunch: function () {this.checkForUpdate();
},
// 检查是否有新版本
checkForUpdate: function () {if (wx.canIUse('getUpdateManager')) { // 判断getUpdateManager在当前版本是否可用const updateManager = wx.getUpdateManager();updateManager.onCheckForUpdate(function (res) {// 请求完新版本信息的回调if (res.hasUpdate) { // 有新版本updateManager.onUpdateReady(function () {wx.showModal({title: '更新提示',content: '新版本已经准备好,是否重启应用?',success: function (res) {if (res.confirm) {// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启updateManager.applyUpdate();}}})})updateManager.onUpdateFailed(function () {// 新版本下载失败wx.showModal({title: '已经有新版本了哟~',content: '新版本已经上线,请您删除当前小程序,重新搜索打开哟~'})})}})} else {wx.showModal({title: '提示',content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'})}
}

热启动强制更新

我们刚看到上面的解决方案撑死只能做到『冷启动』强制更新,但是我们往往遇到的情景是想让用户及时更新最新的代码,因为可能遇到紧急BUG

小方案

通过对 hasUpdate 这个变量自定义后台接口 API,至于 true or false 根据具体业务情况进行分析,然后模拟微信小程序官方提供的模态框来进行处理,我们是根据手机号来进行是否需要更新判断。

我们只需要提供 2 个接口:一个根据手机号进行查询是否需要更新接口,另一个假设需要更新,更新完后会调用更新这个手机号的检查更新状态字段。

至于放在哪个位置,我们是放在 onShow,因为这样可以保证热部署!然后官方提供的方法就可以注释掉了,因为往往是因为想要清空缓存才出的解决方案~

http://www.yayakq.cn/news/48432/

相关文章:

  • c#+网站开发实例注册网站会员会泄露信息吗
  • 网站建设psd模板可以自己画图设计的软件
  • 跨平台网站制作汽车网站开发的需求分析
  • 重庆地产网站建设方案上海专业网站建站品牌
  • 网站备案失败视频网站中滑动列表怎么做
  • 江苏响应式网站建设哪里有江西泰飞建设有限公司网站
  • 商标名称推荐合肥网站优化费用
  • 菏泽市网站建设台州 网站建设
  • 福田专业做网站公司php网站 关键技术
  • 建设网站需要给钱吗如何用网络营销推广
  • 烟台公司建网站如何做闲置物品自己的网站
  • 深圳网站设计制作公司 维仆做网站的费用入账
  • 合肥网站建设公司排名检察机关门户网站建设情况
  • 怎么做多个网站单点登录网站标题 逗号
  • 网站建设及规划方案网站开发 面试
  • 策划对于企业网站建设来说电商平台运营费用预算
  • 在建设主题网站时北京网站的网站建设公司
  • php做网站开发有什么框架济南做网站的高端品牌
  • 制作企业网站的秘诀网页设计与制作教程期末考试题
  • 做网站上数字快速增加建筑人才网河南省2022年3月安全员
  • 西安摩高网站建设网站开发的发展
  • 网站速度的重要性程序员必备工具
  • 全球新闻最新消息百度关键词优化大师
  • 网站建设 题目wordpress 主题next
  • 门户网站建设公司流程做网站推广多少钱
  • 做网站怎么带流量网站建设结课小论文
  • 一个网站的建设流程有哪些资料网络管理网址
  • 百家号淄博圻谷网站建设微信上优惠券的网站怎么做的
  • 土建设计网站烟台网站建设在哪
  • 网站建设费算费用还是固定资产微信网站名