威风的包子
威风的包子
  • 发布:2016-01-06 20:30
  • 更新:2016-01-06 22:23
  • 阅读:1644

如何跳转到不相关的其他页面

分类:MUI

A页面预加载了B、C两个页面
现在从B打开D,D打开F,F需要跳转到C,并且关闭B、D、F,怎么做?

场景:B为购物车,C为订单页面,从B经过好几个页面(支付渠道很多,不确定会经过哪些页面)支付成功(或失败)后,需要将经历的页面关闭,直接跳转到订单页面,怎么做?

我现在是通过webview.opener(),逐层向前找并关闭,直到找到主页(A),再打开C,感觉有点麻烦,不就一个跳转嘛。。。?
有没有可以获得一个页面所有创建者的方法(父亲、爷爷、爷爷的父亲。。。)?或者用其他方式解决这个问题?

2016-01-06 20:30 负责人:无 分享
已邀请:
maq

maq

当 F 跳转到(打开)C 的时候,让 F 来考虑同时关闭 B、D 的话,从设计的角度说应该算是耦合过度。

我觉得可以这样考虑:从 F 出发,只考虑【打开 C】和【关闭自己】这两件事。

其它也如法炮制,比如从 B 出发,只考虑【打开 D】和【关闭自己】,等等……

  • 威风的包子 (作者)

    感谢关注!但实际情况是当B打开D的时候【关闭自己】不合适,联系我上面举的从购物车购物的例子,用户从B到D后很有可能会返回B重新选择,同理,从D除了可以打开F,还可以选择打开其他页面,用户可能在B-D-F这个流程中会随时back。 只有支付完成后,是自动跳转到F的,此时就需要把之前所有打开的页面都关闭了。

    2016-01-07 10:25

  • maq

    好像是有点复杂了,比如存在 D1/D2 和 F1/F2,那么如果实际的操作路径是这样的:

    B-D1-F1-D1-B-D2-F2-C

    那么,当【打开 C】的时候,需要关闭的就不仅仅是 F2/D2/B,还包括 F1/D1,所以就不只是【父、祖父、曾祖父】这一条线了。

    2016-01-07 16:53

  • 威风的包子 (作者)

    回复 maq:这个倒不存在,从F1退到D1的时候的时候,F1就是关闭操作(mui.back),同样的从D1退到B的时候,D1也就关闭了。

    2016-01-07 17:53

  • maq

    嗯,你说的对。


    既然只有一条上溯线,那其实还是比较容易做的,就用你原帖说的方法顺着 opener() 向上找就是了,包装成一个函数调用,也就不麻烦了。只是要设置一下关到哪一级为止。

    2016-01-07 18:09

  • 威风的包子 (作者)

    恩,我现在就是这么做的。感觉官方应该给出这样一个函数,获取【父、祖父、曾祖父...】直到首页的页面,毕竟我原帖中描述的场景很常见。

    2016-01-08 10:34

  • maq

    其实……我越来越有一种感觉,MUI 对 webview 操作的包装并不是很有效,各种应用场景用起来很别扭。正在考虑要不要自己包装一套出来 :)

    2016-01-08 11:00

maq

maq

顺便说一个事情,如果【打开 X】是用 mui.openWindow() 来做的话,跟【关闭自己】一起做的时候,其实有一个坑……新创建的 webview 显示不出来!唉~~

该问题目前已经被锁定, 无法添加新回复