使用uni-app开发小程序,关于小程序更新后与用户本地不会及时更新解决办法

1.原因分析

在小程序更新开发版本之后,用户本地并没有对之前版本的小程序进行删除,那么再进入小程序的时候的版本是不会发生变化的,这是由于发版是异步执行,因此新版本将会覆盖的比较慢,本质是小程序的启动方式分为两种,冷启动与热启动。

冷启动:指的是用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。
热启动:指用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程并不会重新加载启动。

2.解决方案

为了在小程序每次更新及时提醒用户更新,uni-app提供了uni.getUpdateManager()接口,用于管理小程序更新。
参考地址:https://uniapp.dcloud.io/api/other/update?id=getupdatemanager
代码为:

onLaunch: function() {
            const updateManager = uni.getUpdateManager();

            updateManager.onCheckForUpdate(function(res) {
                // 请求完新版本信息的回调
                console.log(res.hasUpdate);
            });

            updateManager.onUpdateReady(function(res) {
                uni.showModal({
                    title: ‘更新提示‘,
                    content: ‘发现新版本,是否重启应用?‘,
                    success(res) {
                        if (res.confirm) {
                            // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                            updateManager.applyUpdate();
                        }
                    }
                });
            });
            updateManager.onUpdateFailed(function(res) {
                // 新的版本下载失败
            });
        },

3.本地调试

在微信小程序开发工具中,添加编译模式,步骤如下:

1.点击普通编译下的【添加编译模式】按钮

2 填写新编译模式值,填写一个名称,选择一个启动页面(首页),勾选底部选项。

3 选择新的编译选项,加载当前小程序。

这样界面上就可以出现刚才我们添加的代码的执行效果了,如下:

推荐是最好的支持,关注是最大的鼓励。亲爱的朋友,很荣幸在园子里遇到您,希望能与您一起学习~~~。

原文地址:https://www.cnblogs.com/wfaceboss/p/10827088.html

时间: 2024-11-09 17:37:34

使用uni-app开发小程序,关于小程序更新后与用户本地不会及时更新解决办法的相关文章

[Phonegap+Sencha Touch] 移动开发19 某些安卓手机上弹出消息框 点击后不消失的解决办法

Ext.Msg.alert等弹出框在某些安卓手机上,点击确定后不消失. 原因是: 消息框点击确定后有一段css3 transform动画,动画完成后才会隐藏(display:none).有些奇葩手机就是不一样. 解决办法就是禁用消息框的动画: 方法一: 在app.js的launch方法里面加上 Ext.Msg.defaultAllowedConfig.showAnimation = false Ext.Msg.defaultAllowedConfig.hideAnimation = false

在Android程序中使用Modbus协议时报 java.net.SocketException: recvfrom failed: ECONNRESET解决办法

最近在开发基本Modbus协议的Android端PLC控制程序,C#版程序没有任何问题,移到JAVA下出现各种问题,其中比较苦恼的是java.net.SocketException: recvfrom failed: ECONNRESET错误. 开始我的解决方法是每次向PLC发送一条数据后关掉socket,但是这样做太极端了. 经过分析发现是由于发送的数据包大小我设定为256,当写入1个寄存器值时,Modbus服务端直接报错,关掉了socket连接,将发送的数据包大小改成实际的大小后解决问题.

restclient,微信小程序请求sessionID不一样导致取不到指定session的解决办法

restclient: header加上:"Cookie", "JSESSIONID=C1A34A2EC4C9423BB460E6F7005CA81E" 微信小程序: header加上:'Cookie':'session_id'   //本地存储的值(因为微信小程序不支持cookies 所以将session_id存入storage) 原文地址:https://www.cnblogs.com/handsomejunhong/p/8799041.html

在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误的解决办法

问题描述:在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.Open()处. 但是发现程序连接本地数据库正常,连接内网服务器数据库会报错,但是Sqlserver是可以直接连接到内网服务器数据库,所以排除了程序问题和数据库远程设置问题. 解决方法:经过查找和试验,最后发现是的Winsock协议配置有问题,导致网络连接出现异常,有资料说是因为360安全卫士拦截网络访问通道导致的. 解

【iOS开发-53】案例学习:scrollView的核心用法以及无法滚动的解决办法

案例效果: (1)主要的就是练习scrollView的用法.界面里面的其他元素基本都是UIView和UIButton堆砌起来的. (2)主要用代码实现,当然,可以先用storyboard拖个scrollView出来.注意需要滚动的都需要放在scrollView,注意层级关系. (3)我们要在代码中使用设置这个scrollView所以直接拖拽形成一个变量,代码都在ViewController.m中: --设置scrollView的最重要的三个属性如下,已用注释标出. --取得一个控件的最大最小X和

Windows环境下Python v2.7.9,NotePad++编写程序中涉及中文,执行时CMD中显示乱码的解决办法

例如: 1.使用NotePad++,以默认的"以 UTF-8无 BOM 格式编码"编写: print "一加一等于二" 直接运行后CMD报错: 但是在IDLE中显示正常: 在文件第一行加入注释: # _*_coding:utf-8_*_ 运行后CMD显示乱码,IDLE依然正常: 在字符串前加u(Unicode编码): # _*_coding:utf-8_*_ print u"一加一等于二" 运行后正常,IDLE依然正常: 2. 使用NotePad

关于高德地图Android开发时地图只显示一次、第二次打开不定位的解决办法

我按照高德官方Demo改的 第一次是可以定位的,如左图 第二次就不能定位了,如右图 在onDestory中把aMap置为空即可 aMap = null; 修改完如下图: 原理是第二次打开时aMap不为空,无法从mapView中getMap获取数据.

[Phonegap+Sencha Touch] 移动开发16 安卓webview中,input输入框不触发backspace回退键事件的解决办法

可以用安卓手机浏览器打开 http://javascript.info/tutorial/keyboard-events#test-stand-test-stand 测试看看. Android 4.2自带浏览器和webview的测试结果(其他版本没试过,估计4.X都是这样): 当input有内容的时候,点击软键盘回退键(keyCode=8),是有keyEvents事件(keyup keydown)触发的:当input是空的时候,再点击,就不触发keyEvents了. Chrome浏览器测试结果:

iOS开发随笔 29:xcode7下模拟器输入文本无法显示系统键盘的解决办法

xcode7下的ios模拟器输入内容无法系统键盘,只能用电脑键盘输入内容,这样可能会对调试带来麻烦. 其实xcode7下的ios模拟器默认只能使用一种,要么是模拟器系统键盘,要么就是是电脑键盘.设置方法如下: 打开ios模拟器菜单栏:Hardware-->Keyboard,会分别看到三个选项:Uses the Same Layout as OS X .Connect Hardware Keyboard和Toggle Software Keyboard.Uses the Same Layout a