onHide 无法触发页面跳转?
发布于 7 年前 作者 mingwang 1790 次浏览 来自 官方Issues

开发环境,手机从"开发者工具"扫码预览

我有一个列表页,跳转到子页面,里边播放了我的内容,有音频的。

当小程序切换至后台时,如果用户在子页面播放内容,我需要跳转至列表页

(因为子页面里有音频,继续播放会干扰到用户)

(注: 子页面里边是用web-view播放内容,使用的是web-view内部的web audio api)

可是当我监听onHide时,发现不能及时跳转,总是当小程序下一次切换至前台时候,才触发了跳转动作。

以下三种跳转我均做过尝试

并且在页面的onHide,  app的onHide都做过监听尝试。

onHide: function(){
    wx.navigateTo({
      url: ‘/pages/index/index’

    })  
  }, 

onHide: function(){
    wx.redirectTo({
      url: ‘/pages/index/index’

    })  
  }, 

onHide: function(){
    wx.navigateBack({
      delta: 1
    })  
  }, 

2 回复

我通过其他手段解决了,

其实具体问题是这样的:

在真机上,onHide发生页面跳转,没有马上跳转。而是等待我"下次将小程序切换到前台"才触发的跳转。

而在开发工具上,跳转是即时触发的。

所以这认为这应该不是bug, 而是涉及机制.

我现在的做法是onHide,先将___web-view里的内容刷新___一遍(等同于重置url)。然后再跳转。

这样避免了小程序切换到后台,继续播放音频的问题,然后下次再切换到前台,就触发了跳转了。

你好,麻烦具体描述问题流程,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

回到顶部