收藏
回答

switchTab方法,success获取page在苹果与安卓机上不一样

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug Android 安卓 9.0.0 mate 20 Pro 7.0.3

- 当前 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 个回答

  • 2019-04-29

    安卓的默认会选择当前页面栈和上一个页面栈,这和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();

    }

    })


    2019-04-29
    有用
    回复 1
    • MOB
      MOB
      2019-05-02

      感谢您的回复,修改代码为您的示例代码,安卓还是不行,ios还是可以。~无奈。getcurrentpage~

      2019-05-02
      回复
  • 痛快科技
    痛快科技
    2019-04-24

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

    2019-04-24
    有用
    回复 2
    • MOB
      MOB
      2019-04-24

      谢谢,已经采用onshow来实现刷新了。

      2019-04-24
      回复
    • ting ^_^
      ting ^_^
      2019-07-03

      安卓与ios

      switchTab方法,success获取page方法返回都是上一个页面栈与当前页面栈;但是安卓偶而只能获取到上一页面栈所以会出现结果两者返回结果不一样的问题

      解决-定义一个全局变量记录跳转的页面路由,在onShow里面判断该变量决定是否调用onLoad方法



      2019-07-03
      回复
登录 后发表内容