小程序 getCurrentPages()用法详解:获取页面栈的实用技巧

2024-06-18
来源:网络整理

()是个好东西,今天我们就来说说它的用法。

首先看官方文档:

【路线·小程序】:

() 函数用于获取当前页面堆栈的实例,该实例按照堆栈的顺序以数组形式给出,第一个元素为首页,最后一个元素为当前页面。

简单来说就是可以获取当前小程序的页面堆栈

那么,获取页面堆栈有什么用呢?

1. 检查页面堆栈是否超过10层,如果超过10层,则无法打开新页面(主要是不通过某种方式打开)。2. 可以修改页面堆栈的数据或方法。

这里跟大家分享一个实际的应用场景:只有发起者才能分享。

有些投票、通知、抽奖、签到等功能,是发起者在私密圈子内进行的,比如只有会员才能参加的抽奖、公司内部通知、班级内部投票等,发起者不想让别人分享,那么在小程序里该怎么做呢?

说起分享,小程序里首先想到的应该是这个方法,只要在page.js中有这个方法,小程序就默认可以分享,不管你内部是否写了代码逻辑。如果没有这个方法,小程序右上角的“…”就不会出现“转发”选项。

问题在于是否允许分享,这个一般是小程序里面的一个开关设置项,如下图:

小程序开发可以禁止转发吗_小程序禁止打开开发版_禁止转发网站

当加载内容时,用户需要先从服务器获取开关状态,然后决定是否显示“转发”选项。

目前我们默认不将方法添加到页面中,这样别人就没法长按分享你转发的小程序卡片了(群聊不能长按分享,私聊还是个坑,见下图)。

然后动态设置当前页面的方法,使用this或者()就可以解决,见下图:

目前私聊卡片依然可以通过长按进行转发,看上去还不是很完善,但是功能基本实现了。

如果想让私聊卡片转发失效,也可以做些变通,比如做成仅限群成员可见的功能,即使转发了私聊卡片,也可以判断小程序场景值,不展示内容~

1、使用wx.()获取小程序启动时的参数:

2.确定群聊和私聊的场景值:

3.如果在微信私聊中打开,则给用户提示即可~

上一则评论

智小程序员,专注于微信小程序开发的程序员~

分享