起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7972|回复: 9

[结贴] 请教 justep.Shell.closePage() 相关

[复制链接]

11

主题

41

帖子

107

积分

初级会员

Rank: 2

积分
107
QQ
发表于 2018-10-30 15:31:19 | 显示全部楼层 |阅读模式
justep.Shell.closePage();
history.back();
this.close()

这三种 关闭页面的区别是什么?
另外:
                justep.Shell.closePage();
                justep.Shell.showPage("main");
这两行代码 放置的前后顺序不同 结果也不同 (可能造成当前页面 没有被关闭掉,后台还在运行.)

跪拜 大神  ORZ
发表于 2018-10-30 15:33:38 | 显示全部楼层
justep.Shell.closePage();   表示关闭当前激活页面对象,当前页和 调用的页面  并不一定是同一个页面
this.close()  实际上也是调用的justep.Shell.closePage();   表示只是关闭自己的页面对象,只是删除自己,不管是否激活

history.back(); 是浏览器自带的能力,表示路由回退!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

41

帖子

107

积分

初级会员

Rank: 2

积分
107
QQ
 楼主| 发表于 2018-10-30 16:24:29 | 显示全部楼层
liangyongfei 发表于 2018-10-30 15:33
justep.Shell.closePage();   表示关闭当前激活页面对象,当前页和 调用的页面  并不一定是同一个页面
this ...

按照
justep.Shell.closePage();
justep.Shell.showPage("main");
的顺序进行切换页面,会发现 关闭的页面在后台没有关闭
而且每次走的都是 onActive 回调 不走 onLoad回调
eg: 每个页面加上一个timer 定时器,会发现 定时器 还是后台执行
回复 支持 反对

使用道具 举报

发表于 2018-10-30 16:29:21 | 显示全部楼层
fenlyer 发表于 2018-10-30 16:24
按照
justep.Shell.closePage();
justep.Shell.showPage("main");

关闭页面和跳转同时执行会有问题
参考下
http://docs.wex5.com/wex5-ui-question-list-2085/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

41

帖子

107

积分

初级会员

Rank: 2

积分
107
QQ
 楼主| 发表于 2018-10-30 16:32:00 | 显示全部楼层
liangyongfei 发表于 2018-10-30 16:29
关闭页面和跳转同时执行会有问题
参考下
http://docs.wex5.com/wex5-ui-question-list-2085/ ...

回复 支持 反对

使用道具 举报

11

主题

41

帖子

107

积分

初级会员

Rank: 2

积分
107
QQ
 楼主| 发表于 2018-10-30 16:56:10 | 显示全部楼层

Model.prototype.button2Click = function(event){
    var me = this;
    justep.Shell.showPage('p2').done(function(){
        me.close();
    });
};
可是实现,但是
在index页面 物理键重写
document.addEventListener('backbutton', function() {
                if ("main" == localStorage.getItem("pageFlag")) {// 主页
                        } else if ("login" == localStorage.getItem("pageFlag")) {// 登录页
                                navigator.app.exitApp();
                        } else if ("order" == localStorage.getItem("pageFlag")) {// 其他页回退
                                justep.Shell.showPage("main");
                                justep.Shell.closePage();
                        } else if("detail" == localStorage.getItem("pageFlag")){
                                justep.Shell.showPage("order");
                                justep.Shell.closePage();
                        } else{
                                justep.Shell.closePage();
                        }       
});
还是没有办法解决我说的问题
回复 支持 反对

使用道具 举报

发表于 2018-10-30 17:05:31 | 显示全部楼层
fenlyer 发表于 2018-10-30 16:56
Model.prototype.button2Click = function(event){
    var me = this;
    justep.Shell.showPage('p2') ...

不要直接这样接管  物理回退键
正确的写法,应该参考
http://docs.wex5.com/wex5-app-question-list-2003/

可以自己接管 attachDoubleClickExitApp   里面写代码

默认是执行路由回退的,你在这里打开页面,再回退了,不合适吧
为什么要在物理回退中跳转不同的页面呢??物理回退就应该是路由一级一级的回退的


qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

41

帖子

107

积分

初级会员

Rank: 2

积分
107
QQ
 楼主| 发表于 2018-11-1 13:22:42 | 显示全部楼层
liangyongfei 发表于 2018-10-30 17:05
不要直接这样接管  物理回退键
正确的写法,应该参考
http://docs.wex5.com/wex5-app-question-list-2003 ...

物理键 默认是历史回退
页面左上角的回退键默认是 this.close();
showPage 用来跳转.
1.window.close  this.close();
没有将此页面从路由中删除
路由回退 依旧会回来.
此时如果历史回退 会按照路由回去,(回到已关闭的页面)
回复 支持 反对

使用道具 举报

发表于 2018-11-1 13:44:43 | 显示全部楼层
fenlyer 发表于 2018-11-1 13:22
物理键 默认是历史回退
页面左上角的回退键默认是 this.close();
showPage 用来跳转.

http://docs.wex5.com/wex5-app-question-list-2135
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

41

帖子

107

积分

初级会员

Rank: 2

积分
107
QQ
 楼主| 发表于 2018-11-1 13:48:19 | 显示全部楼层
liangyongfei 发表于 2018-11-1 13:44
http://docs.wex5.com/wex5-app-question-list-2135

好的.感谢大神
结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-24 12:39 , Processed in 0.064738 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表