小程序, A到B,B判断没有权限 跳到C , C按返回,怎么跳到A?

A,B 是 原生底部 tab页
A 是 首页 B是 个人页面 C 是登陆页
从 A 到 B, B 在 onShow里判断登陆状态, 没有权限 wx.navgitorTo 跳到 C , 这个时候不登陆,怎么跳到首页? 如果点左上角返回,会跳回 B,由于没有权限,又自动跳回 C了,变成一个死循环了。

如果 带一个参数, 在B页面判断是从C跳回来的,再 wx.switchTab 到 A ,小程序直接关闭了,不知道是什么原因。

补充:如果 b 是 redirectTo 到 C页 C页按手机返回也是直接关闭小程序
请问各位大神的解决办法是什么?

阅读 2.9k
3 个回答

两种方法
1.使用 history.replaceState() 方法,只保留 A 页面的记录
2.监听 popstate 事件
例如:

window.onpopstate = function (event) {
    if(当前url==C){
         push到A   
    }
};
wx.redirectTo(OBJECT)
关闭当前页面,跳转到应用内的某个页面。

wx.redirectTo来跳转就行了

话说楼上的两位难道没看到楼主说的是小程序吗?

监听返回按钮啊。

window.addEventListener('popstate', function (e) {
        // alert('我监听到了浏览器的返回按钮事件啦'); // 根据自己的需求实现自己的功能
        // history.go(0);
      }, false);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题