2021-10-22 uniapp跳转到上次离开界面

uniapp设置缓存,进入页面直接恢复到上次退出界面

关键点

1、在onUnload函数中设置好响应的缓存
2、在onLoad函数中提取设置的缓存

以刷题界面进行举例

1、onUnload函数中的代码

if语句为判断选择题的共用界面类型

onUnload() {
				var data = {
					'subjectPath':this.name,
					'oldIndex':this.cache
				}
				if(this.cache!=0){
					if(this.name=="计算机网络"){//判断科目
						if(this.truequestion=="truequestion"){//判断真题
							uni.setStorageSync('oldInfo_jsjwl_x_t',data)
                            //设置缓存,data为数据,‘’中为 key值
						}else{
							uni.setStorageSync('oldInfo_jsjwl_x',data)
						}
					}else if(this.name=="计算机系统"){
						
						if(this.truequestion=="truequestion"){
							uni.setStorageSync('oldInfo_jsjxt_x_t',data)
						}else{
							uni.setStorageSync('oldInfo_jsjxt_x',data)
						}
					}else if(this.name=="英语"){
						if(this.truequestion=="truequestion"){
							uni.setStorageSync('oldInfo_english_x_t',data)
						}else{
							uni.setStorageSync('oldInfo_english_x',data)
						}
					}else{
						
						if(this.truequestion=="truequestion"){
							uni.setStorageSync('oldInfo_lssx_x_t',data)
						}else{
							uni.setStorageSync('oldInfo_lssx_x',data)
						}
					}
				}
		},
2、onUnLoad函数中的代码

通过if判断,取出对应科目的缓存

			var info=''
			if(this.name=="计算机网络"){	
				if(this.truequestion=="truequestion"){
					info = uni.getStorageSync('oldInfo_jsjwl_x_t')
                    //取出对应缓存,通过key提取
				}else{
					info = uni.getStorageSync('oldInfo_jsjwl_x')
				}
			}else if(this.name=="计算机系统"){
				
				if(this.truequestion=="truequestion"){
					info = uni.getStorageSync('oldInfo_jsjxt_x_t')	
				}else{
					info = uni.getStorageSync('oldInfo_jsjxt_x')	
				}
			}else if(this.name=="英语"){
				if(this.truequestion=="truequestion"){
					info = uni.getStorageSync('oldInfo_english_x_t')	
				}else{
					info = uni.getStorageSync('oldInfo_english_x')	
				}
			}else{
					if(this.truequestion=="truequestion"){
						info = uni.getStorageSync('oldInfo_lssx_x_t')
					}else{
						info = uni.getStorageSync('oldInfo_lssx_x')
					}
			}
			console.log(info)
			//判断上次答题的位置
			if(info.oldIndex!=0){//这里的操作是处理分页加载的问题
				var num = parseInt(info.oldIndex/20)
				for(var i=0;i<num;i++){
					this.chooseSubject(this.name)
					this.list[i]=-1
				}
				var that=this
				uni.showModal({//提示用户
					title:'是否恢复到上次答题位置',
					success:res=> {
						if(res.confirm){
							console.log(res.confirm)
							that.questionIndex=info.oldIndex
                            //跳转到上次离开的页面
						}
						
					}
				})
			}

运行视频

运行样式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值