switchTab方法,success获取page在苹果与安卓机上不一样
发布于 7 年前 作者 xiazhang 12911 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

wx.switchTab({

url: ‘…/showInfo/showInfo’,

success: function (e) {

var page = getCurrentPages().pop();

if (page == undefined || page == null) return;

console.log("【即将启动下拉刷新】page:",page)

page.onPullDownRefresh();

page.cancelWarnning();

}

})

使用苹果手机调试时,上述代码能实现获取showInfo页并执行方法。但是当用安卓机调试时,getCurrentPage结果为当前页面(未跳转页面),因此也就无法执行showInfo页面中的方法。

如何实现安卓机上的获取跳转后页面?我看网上有人说可能是异步操作导致getCurrentPage时,页面堆栈还未改变。不知道该如何解决?请大神不吝赐教~

2 回复

pages的页面栈不要自己修改,会出现不可预见的问题

安卓的默认会选择当前页面栈和上一个页面栈,这和ios不同。

建议修改一下代码,不要用 .pop() 方法了。可以这样:

wx.switchTab({

url: '../showInfo/showInfo',

success: function (e) {

var page = getCurrentPages();

var router = page[0];

if (router == undefined || router == nullreturn;

console.log("【即将启动下拉刷新】page:",router)

router.onPullDownRefresh();

router.cancelWarnning();

}

})

回到顶部