思年华
思年华
  • 发布:2016-09-27 14:12
  • 更新:2016-09-27 15:17
  • 阅读:1348

有一个业务场景是这样的,使用sub-webview结构,怎么在main的顶部back按钮中把子页或者3、4级子页“逐层”返回

分类:MUI
  • 有一个业务场景是这样的,使用sub-webview结构,怎么在main的顶部back按钮中把子页或者3、4级子页“逐层”返回。

1、我通过使用sub-wevview结构做app的整体布局结构,结构如下:
main.html框架页面,main中有head模块,对应的是back button。index.html主页面(也就是main.html的二级子页),contacts.html,set.html....

2、现在每个二级页面中再次加载了子页面,也就是3级或者4级子页面,如果我点击二级页面index.html之后,再进入到二级页面中创建的item.html子页面中(3级页面),那么我怎么通过点击主页面back,返回到二级页面(index.html)中,特别说明,正常操作点击安卓上面的返回按钮是可以做到的,但是问题是ios没有返回按钮。那么如果不把主页面的back button改为子页面的back button的前提下该怎么实现,我现在是直接不管点击到3级还是4级页面都返回到main.html中。这样体验不好,请问那位大神说下实现思路...万分感谢!

2016-09-27 14:12 负责人:无 分享
已邀请:
chender

chender - 与人为善

你的二级页面、三级页面的header是同一个是吧?

  • 思年华 (作者)

    不是现在二级页面、三级页面等都没有使用header模块,只用main主框架的header,然后再控制里面嵌套的子页面的返回业务。大致是这样的。不知能不能实现

    2016-09-27 15:12

  • chender

    回复 思年华:对啊,就是header是共用的是吧,你看一下我最新的回复

    2016-09-27 15:18

赵梦欢

赵梦欢 - 专注前端,乐于分享!

如果是在同一个webview里面跳转的,通过WebviewObject对象的canBack和canForward方法可以查询Webview窗口的状态,通过back和forward控制页面加载。如果是先开的webview或者loadURL,可以使用使用逐层close webview。

  • 思年华 (作者)

    不是单一的webview页面跳转,是通过主页面控制子页面的webview,而且这个子页面webview 没有是通过self.append(sub); 并且每次都是一个sub页面,append([1.html,2.html])这种通过隐藏对应的webview。现在的问题是,我在主页main.html获取不到对应的子页面的id或者url,并且不知道那个是最后一个。不过还是谢谢你得回答,我再试试

    2016-09-27 15:39

chender

chender - 与人为善

如果header用的是同一个的话,你在你的所有页面里都引一句js代码:
localstorage['frontestViewId']=plus.webview.currentWebview().getId();
然后在点header里面的返回的时候:plus.webview.getWebviewByid(localstorage['frontestViewId']).hide();
或者你看一下plus.webview里面有没有哪个api可以直接获取最顶端的webview

  • 思年华 (作者)

    嗯嗯。好的,谢谢,我按你的方法试下。

    2016-09-27 15:40

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