()是个好东西,今天我们就来说说它的用法。
首先看官方文档:
【路线·小程序】:
() 函数用于获取当前页面堆栈的实例,该实例按照堆栈的顺序以数组形式给出,第一个元素为首页,最后一个元素为当前页面。
简单来说就是可以获取当前小程序的页面堆栈
那么,获取页面堆栈有什么用呢?
1. 检查页面堆栈是否超过10层,如果超过10层,则无法打开新页面(主要是不通过某种方式打开)。2. 可以修改页面堆栈的数据或方法。
这里跟大家分享一个实际的应用场景:只有发起者才能分享。
有些投票、通知、抽奖、签到等功能,是发起者在私密圈子内进行的,比如只有会员才能参加的抽奖、公司内部通知、班级内部投票等,发起者不想让别人分享,那么在小程序里该怎么做呢?
说起分享,小程序里首先想到的应该是这个方法,只要在page.js中有这个方法,小程序就默认可以分享,不管你内部是否写了代码逻辑。如果没有这个方法,小程序右上角的“…”就不会出现“转发”选项。
问题在于是否允许分享,这个一般是小程序里面的一个开关设置项,如下图:
当加载内容时,用户需要先从服务器获取开关状态,然后决定是否显示“转发”选项。
目前我们默认不将方法添加到页面中,这样别人就没法长按分享你转发的小程序卡片了(群聊不能长按分享,私聊还是个坑,见下图)。
然后动态设置当前页面的方法,使用this或者()就可以解决,见下图:
目前私聊卡片依然可以通过长按进行转发,看上去还不是很完善,但是功能基本实现了。
如果想让私聊卡片转发失效,也可以做些变通,比如做成仅限群成员可见的功能,即使转发了私聊卡片,也可以判断小程序场景值,不展示内容~
1、使用wx.()获取小程序启动时的参数:
2.确定群聊和私聊的场景值:
3.如果在微信私聊中打开,则给用户提示即可~
上一则评论
智小程序员,专注于微信小程序开发的程序员~