- 当前 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时,页面堆栈还未改变。不知道该如何解决?请大神不吝赐教~
安卓的默认会选择当前页面栈和上一个页面栈,这和ios不同。
建议修改一下代码,不要用 .pop() 方法了。可以这样:
wx.switchTab({
url: '../showInfo/showInfo',
success: function (e) {
var page = getCurrentPages();
var router = page[0];
if (router == undefined || router == null) return;
console.log("【即将启动下拉刷新】page:",router)
router.onPullDownRefresh();
router.cancelWarnning();
}
})
感谢您的回复,修改代码为您的示例代码,安卓还是不行,ios还是可以。~无奈。getcurrentpage~
pages的页面栈不要自己修改,会出现不可预见的问题
谢谢,已经采用onshow来实现刷新了。
安卓与ios
switchTab方法,success获取page方法返回都是上一个页面栈与当前页面栈;但是安卓偶而只能获取到上一页面栈所以会出现结果两者返回结果不一样的问题
解决-定义一个全局变量记录跳转的页面路由,在onShow里面判断该变量决定是否调用onLoad方法