09 保存草稿功能开发(涉及返回监听事件+本地缓存操作)

09 保存草稿功能开发(涉及返回监听事件+本地缓存操作)

一 完成保存草稿功能

思路

1 监听并且编辑后退事件,当有内容的时候 返回值为true会阻止默认后退行为

2 当有内容的时候(保存选项)把需要保存的数据存储到本地缓存里面,手动执行型返回操作。

3 当有内容的时候(不保存选项)如果不保存清除本地缓存(因为有可能上一次保存了,这一次不想保存),手动执行返回操作。

4 手动设置backtag开关优化每次都提问是否保存(当内容为空的时候无需提问)

1 监听并且编辑后退事件

onBackPress(){
			if ((this.content!='' || this.imageList.length >0) && this.backTag){
				// 异步的
				uni.showModal({
					content:'是否要保存为草稿?',
					showCancel:true,
					
					cancelText:'不保存',
					confirmText:'保存',
					success: (res) => {
						// 点击确认
						if (res.confirm) {
							// 保存到本地缓存。
							this.store()
						}else { // 点击取消,清除本地缓存
							uni.removeStorage({
								key:"add-input"
							})
							
						}
						
						// 手动执行返回
						uni.navigateBack({
							delta:1
						})
					}	,
					
				})
				// 到这里相当于提示框已经出现过或者将要出现了。第二次阻止后退就不应该了
				this.backTag = false
				return true // 返回true阻止默认行为
			}
			
		},
      
      
// ps:methods下的
      store(){
				let obj = {
					content:this.content,
					imageList:this.imageList
				}
				// 异步新增本地缓存。
				uni.setStorage({
					key:'add-input',
					data:JSON.stringify(obj)
				})
			},
posted @ 2020-04-09 11:26  张明岩  阅读(413)  评论(0编辑  收藏  举报