微信小程序阻止页面返回实例详解(包滑动、自动返回键)

 更新时间:2023年06月01日 11:18:42   作者:奥特曼  
小程序如果在页面内进行复杂的界面设计,用户进行返回操作会直接离开当前页面,不符合用户预期,下面这篇文章主要给大家介绍了关于微信小程序阻止页面返回(包滑动、自动返回键)的相关资料,需要的朋友可以参考下

前言

这个场景还是挺有意思的,比如某多多,只要你点左上角的返回 好家伙,满满又 花不了 的优惠券就来了,让你拥有一种消费最划算的感觉。

如果你的场景比较简单,只是对左上角的返回进行监听,只需要关闭自带的导航栏,手写导航栏或用ui库的写好的导航栏就好了。然后给写好的导航栏的返回按钮添加一个返回的事件做自己想要实现的场景就好了。

一、自定义导航栏

自定义导航栏配置:

{
	"path": "pages/login/login",
	"style": {
+		"navigationStyle": "custom"
	}
}

二、 wx.enableAlertBeforeUnload

如果你的场景点击返回时只用来提示一下用户 类似于用一个showModel(提示框)的展示效果,可以使用wx.enableAlertBeforeUnload,只要一点击左上角的返回就会触发当前事件,如果点击确定退出当前页,如果点击取消留在当前页面。

onLoad(e) {
			uni.enableAlertBeforeUnload({
			    message: "返回上页时弹出对话框",
			    success: function (res) {
			      console.log("点击确认按钮了:", res);
			    },
			    fail: function (errMsg) {
			      console.log("点击取消按钮了:", errMsg);
			    },
			 })
		},

三、page-container 

如果你的场景比较复杂,手机都会有自带的滑动返回,例如ios的滑动返回,安卓的滑动返回和back返回键,就需要用到page-container,他的效果类似于弹窗的形式存在着。

<page-container :show="true"  :duration="false" :overlay="false">
    存放内容
</page-container>

当点击返回按钮时 会先执行把当前的page-container给隐藏掉,再次点击返回时才能够返回上一页。

在正常逻辑下 如果想要优惠券只弹出一次,只需要把page-container 放在外面 于内容隔离开,当点击关闭时先把page-container给隐藏掉,并不会触发当前页的返回,当关闭page-container时会有离开前的事件,只需要在离开前的事件中添加对应的显示优惠券逻辑即可。

<template>
	<view   >
		<scroll-view scroll-y="true" style="height: 100vh;" :scroll-top="top"  class="mainBox" @scroll="scroll">
			<view class="" v-for="item in 99">
					我是内容
			</view>
	</scroll-view>
	<page-container :show="true"  :duration="false" :overlay="false" @beforeleave="beforeleave"></page-container>
	</view>
</template>
methods:{
	beforeleave(){
				uni.showModal({
					title:'弹出优惠券逻辑'
				})
			},
}

 如果呢 你这个项目比较特别特别的恶心,只要你点击左上角的返回我就不让你出去,什么时候点击我指定的返回你才够出去,什么都得听我的! 实现思路也是一直在原地进入当前页面。好处就是我能知道你想要返回了,确定就是会有一个进入的加载效果。

完整代码

<template>
	<page-container :show="isShow"  :duration="false" :overlay="false"  @beforeleave="beforeleave" @afterleave="afterleave"   >
		<scroll-view scroll-y="true" style="height: 100vh;" :scroll-top="top"  class="mainBox" @scroll="scroll">
			<view class="back" @click="back">
				指定返回按钮
			</view>
			<view class="" v-for="item in 99">
				我是内容
			</view>
		</view>
	</scroll-view>
	</page-container>
</template>
<script>
	export default {
		data() {
			return {
				isShow:true, 
				top:0,
				scrollTop:0,
			}
		},
		onLoad(e) {
			this.top = e.top
		},
		methods: {
			back(){
				this.isShow = false
				console.log('点击返回了');
				uni.navigateBack()
			},
			beforeleave(){
				if(!this.isShow) return uni.navigateBack()
				console.log('点击返回了');
				uni.redirectTo({
					url:`/pages/mine/test?top=${this.scrollTop}`,
					fail(err) {
						console.log(err);
					}
				})
			},
			// 需要在退出一次 否则退不出去
			afterleave(){
				if(!this.isShow) return uni.navigateBack()
			},
			// 记录当前位置 下次进来时自动转到刚才的位置
			scroll(e){
				this.scrollTop = e.target.scrollTop
			}
		},
	}
</script>

总结

到此这篇关于微信小程序阻止页面返回(包滑动、自动返回键)的文章就介绍到这了,更多相关微信小程序阻止页面返回内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript下with 的简化代码写法

    javascript下with 的简化代码写法

    with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用
    2008-02-02
  • JavaScript中常用的六种互动方法示例

    JavaScript中常用的六种互动方法示例

    这篇文章主要介绍了JavaScript中常用的六种互动方法示例,是个人的一些经验总结,这里分享给大家,希望对大家能够有所帮助。
    2015-03-03
  • javascript关键字加亮加连接

    javascript关键字加亮加连接

    我想在页面里把想要的关键词加亮凸出(用颜色区分出来)显示,这样让客户一眼能看到重的东西,然后在加亮的关键词上可以加上超连接.请问高手们怎么实现宋的功能.就像搜索引擎的那种..搜索关键词的时候就显示红色的.
    2008-06-06
  • JavaScript 弹出窗体点击按钮返回选择数据的实现

    JavaScript 弹出窗体点击按钮返回选择数据的实现

    这两天一直想实现这个,以前做做个Demo,但是不知道跑哪去了。于是今天在网上找了些资料再自己动手搞定。废话不多说。直接进入主题啦。
    2010-04-04
  • JavaScript 高效运行代码分析

    JavaScript 高效运行代码分析

    传统上,网页中不会有大量的脚本,至少脚本很少会影响网页的性能。
    2010-03-03
  • 浅析javascript中的DOM

    浅析javascript中的DOM

    本文主要给大家简单介绍了是什么是DOM、动态操作DOM元素的方法、使用jsjs操作样式以及Form对象的简介,是个人对于javascript中的DOM的理解的总结,推荐给小伙伴们。
    2015-03-03
  • JavaScript 异步函数 Promisification 处理详情

    JavaScript 异步函数 Promisification 处理详情

    这篇文章主要介绍了JavaScript异步函数Promisification处理详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • js正则表达式惰性匹配和贪婪匹配用法分析

    js正则表达式惰性匹配和贪婪匹配用法分析

    这篇文章主要介绍了js正则表达式惰性匹配和贪婪匹配用法,结合实例形式详细分析了正则表达式的基本概念以及惰性匹配和贪婪匹配的使用方法,需要的朋友可以参考下
    2016-12-12
  • javascript实现密码验证

    javascript实现密码验证

    这篇文章主要介绍了javascript密码验证的实现方法,过程很简单具有一定的参考价值,适合初学者学习研究,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • javascript 拖放效果实现代码

    javascript 拖放效果实现代码

    JavaScript擅长于修改页面中的DOM元素,但是我们使用JavaScript通常只是实现一些简单功能,例如实现图片的翻转,网页中的标签页,等等。这篇文章将向你展示如何在页面中,对创建的元素实现拖放。
    2010-01-01

最新评论