关于小程序 wx.navigatetoo5个页面的打开限制,有没有解决的工具或方案

微信小程序,前端大梦想五
l&wx.navigateTo(OBJECT)
保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
OBJECT 参数说明:
示例代码:
l&wx.redirectTo(OBJECT)
关闭当前页面,跳转到应用内的某个页面。
OBJECT 参数说明:
l&wx.reLaunch(OBJECT)
微信客户端 6.5.6 版本开始支持
关闭所有页面,打开到应用内的某个页面。
OBJECT 参数说明:
l&wx.switchTab(OBJECT)
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
OBJECT 参数说明:
示例代码:
三、&下拉刷新
App.json文件可以配置全局设置,其中window对象可以设置页面对下拉刷新是否支持
页面相关事件处理函数
onPullDownRefresh: 下拉刷新
监听用户下拉刷新事件。
需要在config的window选项中开启enablePullDownRefresh。
当处理完数据刷新后,可以停止当前页面的下拉刷新。
onReachBottom&滚动页面到底部,加载新的内容(开发文档中没有提到)
了解了以上知识开始我们的案例吧,效果图如下:
项目结构如下:
重点代码如下:
Playing.js代码:
// pages/palying/palying.js
var functions = require('../functions.js')
var url = '/v2/movie/in_theaters'
var pageSize = 5
&&&&films: [], &&&&&&&&&//保存获得的json数据
&&&&hasMore: true, &&&&&//上拉加载更多提示标示
&&&&showLoading: true, &//数据加载标示
&&&&start: 0 &&&&&&&&&&&//初始加载条目
&&//页面加载
&&onLoad: function () {
&&&&var that = this
&&&&&&functions.fetchFilms.call(that, url, '', 0, pageSize, function(data){
&&&&&&&&that.setData({
&&&&&&&&&&showLoading: false
&&&&&&&&})
&&//下拉刷新
&&onPullDownRefresh: function () {
&&&&&&var that = this
&&&&&&functions.fetchFilms.call(that, url, '', 0, pageSize, function(data){
&&&&&&&&that.setData({
&&&&&&&&&&showLoading: false
&&&&&&&&})
&&//上拉加载更多
&&onReachBottom:function(){
&&&&var that = this
&&&&&&functions.fetchFilms.call(that, url, '', that.data.start, pageSize, function(data){
&&//点击进入详细画面事件
&&viewDetail: function(e){
&&&&var ds = e.currentTarget.
&&&&wx.navigateTo({
&&&&&&url: '../detail/detail?id=' + ds.id + '&title=' + ds.title + '&type=ing'
&&//点击进入详细画面事件
&&viewDetail: function(e){
&&&&var ds = e.currentTarget.&&&&//取出页面参数
&&&&wx.navigateTo({&&&//跳转页面
&&&&&&url: '../detail/detail?id=' + ds.id + '&title=' + ds.title + '&type=ing'
页面参数如下:
豆瓣电影API说明:
维思微信公众号10大运营技巧&纯干货&周二的时候,给维思训练营的朋友,布置了作业:每一个人必须申请一个微信公众账号.大家都很积极,许多同学还不清楚公众平台是什么东西的朋友,也开始注册和学习了,实践是进步的开始.特别对美玲同学,老六同学,卓雅同学提出表扬,他们很热情地帮助小伙伴,你们的付出一定会得到大家认可的.我总相信一句话:人心都是肉长的,我拿真 ...
小学分,大用处!学分当钱花,迎双旦,金币.好礼等你来兑换!亲,你的学分兑换了吗?活动时间:日 -日 17:00兑换设置:兑换实物物品兑换数量兑换价格金币每人最多兑换20个100学分/每个金币小号学院熊吉祥物+数据线每人兑换1件2500学分/每件
共30件U型卡通枕 (造型随机发送)每人兑换1件2500学分/每件
最近在学习Python,便利用业余时间开发了一个模拟ATM抢银行的小程序,不废话,直接上程序#!/usr/bin/env python #coding=utf-8 # Name: AtmCard.py __author__ = 'kumikoda' import pickle import sys import time import hashlib imp ...
实现一个可以关闭电脑的小程序,闲余时间可以恶搞一下朋友,恶搞还可以继续增加趣味和难度.下面是我写的比较简单的关机小程序:#include &stdio.h& #include &stdlib.h& #include &string.h& int main() {
char input[10];
system ...
互联网商业模式,一个很大的话题.不同的视角,会有不同的说法.比较常见的,如收费/免费模式.2C/2B模式.PC/移动模式等等. 互联网,越来越深刻.越来越彻底地颠覆着整个世界,也使得原来界限分明的商业模式,变得越来越模糊. 不考虑互联网企业,只考虑最终用户.如果存在多个最终用户,只考虑最核心的那一类.那么,从最终用户的角度,可以有一种互联网商业模式的新说法: ...
今年的iPhone 6S发售会让黄牛党很不爽,首周1300万的销量并没有让他们挣到太多钱,尤其是目前港行已经进驻国内卖场,iPhone 6S价格瞬间&破发&,而PLUS尽管货源并不充足,但是价格也仅仅是加上几百元而已,利润空间已经不大,估计要是前期贪一些的牛牛们备货过多,基本上已经可以去天台排队了.但是围绕iPhone 6S近日有几则新闻 ...
© CopyRight
Inc All Rights Reserved.
管理员邮箱: info @2508人阅读
微信小程序(11)
在微信小程序开发过程中,如果你出现了在其他地方可以正常跳转,但是此时就是不行,不知道为什么。
分析原因:
1.你的页面在app.json文件中注册了吗?
2.你的url地址写对了吗,目录层级没错吗?
3.你要跳转到的页面是非tabBar的页面吗?如果是tabBar页面,恭喜你,找到问题了。
wx.navigateTo/wx.redirectTo只能用在非tabBar页面的跳转,要跳转到tabBar页面,需要使用wx.switchTab
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:125685次
积分:2176
积分:2176
排名:第17234名
原创:82篇
转载:11篇
评论:61条
(1)(2)(1)(2)(11)(4)(10)(5)(3)(20)(4)(11)(2)(13)(3)(1)技术宝典| 如何「掏空」小程序的五层页面限制?
很多开发者在面对小程序的五层页面限制时,大概都会想起一首歌,对了,就是《五环之歌》。
爱晓程序(axcx666)现在就告诉你们,怎样狠狠把这五层页面榨干。
微信小程序中的页面导航 API 有三个,两个跳转新页面的API分别为 wx.navigateTo 和 wx.redirectTo ,还有一个 API ,名为 wx.navigateBack,它用于返回页面。
wx.navigateBack 在小程序的初始版本中只能回到上一个页面,在最新版本(0.10.102800)的更新中给 navigateBack 添加了一个参数 delta,用于决定需要返回几层页面。
navigator 组件的默认跳转方式与 wx.navigateTo 相同,而如果添加 redirect 属性,则与 wx.redirectTo 的跳转方式相同。
navigateTo 在官方文档中描述如下:
保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页面。
通过 navigateTo 跳转后,可点击左上角的按钮返回上一个页面。而如果多次调用 navigateTo 之后,就需要返回多次才能回到初始页面。因此,官方在此处有一个限制。
注意:为了不让用户在使用小程序时造成困扰,我们规定页面路径只能是五层,请尽量避免多层级的交互方式。
不过上述五层的限制只是针对 navigateTo,redirectTo 则无此限制。因为 redirectTo 的行为是:关闭当前页面,跳转到应用内的某个页面。
通过 redirectTo 跳转后,则无法返回跳转前的页面。但并不是无法调用 navigateBack,而是调用之后,会回到使用 redirectTo 跳转前的上一个页面(此点如果不理解,下面我们会举例详细介绍)。
结合页面栈这个概念可以将上述的「页面路径」和页面层数有更好的理解。
页面栈可以通过 getCurrentPages 方法获取:
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
上述的「页面路径」可以对应为页面栈中的元素,页面栈中的最后一个元素就是当前显示的页面,页面跳转就是新页面入栈的过程。
上述三种页面 API 的区别在于:
navigateTo 不会将旧页面出栈;
redirectTo 会将旧页面出栈,再将需要跳转到的页面入栈;
navigateBack 则是将页面栈最后一个元素出栈,因此倒数第二个元素会成为最后一个元素,即变成「当前页面」。
结合下面一个例子可以对上面的内容有更好的理解:
有一个小程序包含 A、B、C、D 四个页面,A 页面为首页。小程序启动后,在 A 页面中,我们通过 navigateTo 跳转到 B 页面,然后在 B 页面中再通过 navigateTo 跳转到 C 页面。
此时页面栈中就会包含三个元素,分别为 A、B、C 三个页面。而此时如果通过 redirectTo 跳转到 D 页面,redirectTo 会将当前页面出栈,即将 C 页面出栈,再将 D 页面入栈,这时候,页面栈中的元素则会变为 A、B、D。
此时如果在 D 页面调用 navigateBack,会发现不是返回 C 页面,而是返回到了 B 页面。因为 navigateBack 将栈中最后一个元素(D 页面)出栈后,页面栈的内容则变为 A、B。页面栈最后一个元素为 B 页面,即当前显示的会是 B 页面。
而上述「页面路径」限制为五层,其实就是规定了页面栈中的元素不能超过五个。页面栈中元素达到五个后,就不能增加了。
navigateTo 不会将旧页面出栈,因此通过 navigateTo 跳转后,页面栈中元素个数会加一,因此在页面栈中元素个数达到 5 之后再调用 navigateTo 会失败,出现无法跳转的错误。
而 redirectTo 会在将旧页面出栈后,再将新页面入栈,因此通过 redirectTo 跳转,页面栈中元素个数会保持不变,因此即使在页面栈中元素达到 5 个之后再调用 redirectTo 也能成功跳转。
以上就是爱晓程序(axcx666)带来的页面层级三个API的解析文章。开发者需要在微信中,善于对这三个 API 的利用,以便能充分利用微信的五层页面限制。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点关于wx.navigateTo5个页面的打开限制,有没有解决的工具或方案? - 知乎7被浏览276分享邀请回答2添加评论分享收藏感谢收起Q&A · 小程序
开发文档首页

我要回帖

更多关于 wx.navigateback 传值 的文章

 

随机推荐