进入子页的详情页面以后,再从子页面通过mui.openWindow("main.html");方式返回主页面,点击底部的导航栏,就经常没有反应了,页面也不切换,是那种比较卡的感觉?可能偶尔几次可以切换然后又不可以了。不知是不是返回主页面的方法不正确还是子页面没有彻底关闭,如需要彻底关闭怎么关闭?还是子页面占用内存多了,怎么清除哪些多余的内存?
发现问答中不止我一人遇到此问题,还有人和我遇到问题和我一样,如:http://ask.dcloud.net.cn/question/5787?item_id=18456&rf=false
借用此人的图片。
本来此图应该是点击“我”之后的页面,但是,现在圈子直接不切换webview了。
点击“我” - “我的消息” 之后,再返回主页面,主页面的底部导航栏就不好用了。
- 发布:2015-10-29 18:02
- 更新:2019-05-26 00:10
- 阅读:4817
peak (作者)
如果只有一层子页面我都是用的返回。可是有的子页面是好几层的,没有办法只能用openWindow打开了。例如:主页面进入到登陆页面,登陆页面再进入了注册页面,注册页面再进入了修改密码页面,修改完密码我肯定要用openWindow进入主页面了。否则一层层关闭用户体验不好,也不符合常理和需求。我现在想知道有没有clear()掉除本页面之外的其余界面的方法。
peak (作者)
各位好,经过多次测试,发现一个规律,就是从子页面返回后,第一次点击底部的导航栏的某选项卡页面不切换,但是你如果在点击了别选项卡之后第二次点击原选项卡,页面有切换。总是第二次点击的时候有切换。
例如:示例图中,从子页面返回后,点击“业绩”时页面不切换,但是你点击下“客户”后再次点击“业绩”,界面就会切换到“业绩”页面,再点击“客户”页面会切换到了“客户”页面。可是你再点击“业绩”时页面不切换,点击下“客户”后再次点击“业绩”,界面就会切换....就是第二次点击切换时候才会切换。
如果要直接后退好几个窗口,那可以在后退之前把前边路径上的窗口都关闭掉。
-
peak (作者)
我新建了一个mui模板项目进行了测试,就算只有一级子页面,通过mui.back();方法直接返回webview模式的选项卡主页面没有此问题,一改为mui.openWindow("main.html");就会出现此问题。说明还是mui.openWindow方式退回含有选项卡的主页面有问题。
所以这应该是一个bug。
备注:
(规律,就是从子页面返回后,第一次点击底部的导航栏的某选项卡页面不切换,但是你如果在点击了别选项卡之后第二次点击原选项卡,页面有切换。总是第二次点击的时候有切换。
例如:示例图中,从子页面返回后,点击“业绩”时页面不切换,但是你点击下“客户”后再次点击“业绩”,界面就会切换到“业绩”页面,再点击“客户”页面会切换到了“客户”页面。可是你再点击“业绩”时页面不切换,点击下“客户”后再次点击“业绩”,界面就会切换....就是第二次点击切换时候才会切换。)2015-10-30 10:01
peak (作者)
我新建了一个mui模板项目进行了测试,就算只有一级子页面,通过mui.back();方法直接返回webview模式的选项卡主页面没有此问题,一改为mui.openWindow("../main.html");就会出现此问题。说明还是mui.openWindow方式退回含有选项卡的主页面有问题。
所以这应该是一个bug。
备注:
(规律,就是从子页面返回后,第一次点击底部的导航栏的某选项卡页面不切换,但是你如果在点击了别选项卡之后第二次点击原选项卡,页面有切换。总是第二次点击的时候有切换。
例如:示例图中,从子页面返回后,点击“业绩”时页面不切换,但是你点击下“客户”后再次点击“业绩”,界面就会切换到“业绩”页面,再点击“客户”页面会切换到了“客户”页面。可是你再点击“业绩”时页面不切换,点击下“客户”后再次点击“业绩”,界面就会切换....就是第二次点击切换时候才会切换。)
peak (作者)
mui中mui.openWindow方法有没有打开新页面后当前页面关闭的方法,例如android中的finish().
这样写虽也可以实现,但是效果不好,会闪显一下更以前的页面才打开新页面,体验不好。
plus.webview.currentWebview().hide();
mui.openWindow("register.html ");
peak (作者)
问题解决了,二级页面及其后的页面在跳转是关闭本页面在跳转,方法如下:
setTimeout(function() {
plus.webview.currentWebview().hide();
}, 1000)
mui.openWindow("test2.html");
最好回到主页面时候不用mui.openWindow,改为:
plus.webview.currentWebview().close();
peak (作者)
首页十分十分感谢你的评论。如果只有一层子页面我都是用的返回。可是有的子页面是好几层的,没有办法只能用openWindow打开了。例如:主页面进入到登陆页面,登陆页面再进入了注册页面,注册页面再进入了修改密码页面,修改完密码我肯定要用openWindow进入主页面了。否则一层层关闭用户体验不好,也不符合常理和需求。我现在想知道有没有clear()掉除本页面之外的其余界面的方法。
2015-10-29 18:48