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

QQ登录

只需一步,快速开始

查看: 7581|回复: 13

[结贴] 设置一个统一的返回父界面的程序

  [复制链接]

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
发表于 2015-5-21 14:15:27 | 显示全部楼层 |阅读模式
版本: BeX5V3.1 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
程序里面所有的子界面都是通过winDialog打开的
现在给安卓的物理返回键设置一个统一的返回父界面的程序
怎么设置呀???

长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-5-21 14:20:30 | 显示全部楼层
我在主界面的modelLoad里面添加了如下代码:
                document.addEventListener("deviceready", function() {        //当设备准备完成时,增加一个事件监听函数
                        var exitAppTicker = 0;        //退出APP点击次数
                        var listener = function(){                //定义listener监听者
                                if(localStorage.getItem("Lawrance_MainIndex")=="MainPage"){        //判断一下当前是否在主页面
                                        if(exitAppTicker == 0){        //如果第一次点击退出APP
                                                exitAppTicker++;        //点击次数增加1
                                                //退出应用消息框
                                                var msg = $('<div  style="z-index:999;text-align:center;font-size:16px;background-color:#808080;color:#FFFFFF;border-radius: 6px;-webkit-transition:all 0.4s;-webkit-transform:translate3d(0,-100%,0);position:absolute;top:80%;left:25%;height:40px;line-height:40px;width:50%;">再按一次退出应用</div>').appendTo('body');
                                                setTimeout(function(){
                                                        msg.transform('translate3d(0,0,0)');
                                                },1);        //展现对话框
                                                setTimeout(function(){
                                                        exitAppTicker = 0;        //3秒后点击次数清零,对话框消失
                                                        msg.transform('translate3d(0,-100%,0)').transitionEnd(function(){
                                                                msg.remove();       
                                                        });
                                                },2000);
                                        }else if(exitAppTicker == 1){                //如果已经点击一次
                                                navigator.app.exitApp();                //则退出APP
                                        }       
                                }else{        //如果在其他页面,则返回父界面
                                        var curPage=????   //拿到当前显示的页面
                                        curPage.comp("windowReceiver").windowEnsure();

                                }
                        };
                        document.addEventListener('backbutton', listener, false);
                        $(window).on('beforeunload', function(){
                                document.removeEventListener('backbutton', listener, false);
                    });
        }, false);
               
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-5-21 14:21:30 | 显示全部楼层
但是这两句就不会写了
哪位大侠教教我
                                //如果在其他页面,则返回父界面
                                        var curPage=????   //拿到当前显示的页面
                                        curPage.comp("windowReceiver").windowEnsure();
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35962
发表于 2015-5-21 14:29:46 | 显示全部楼层
把windowDialog的routable设置为true,物理返回键的时候就会返回到父页面上
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-5-21 14:35:29 | 显示全部楼层
果然
我把这段源代码完整的贴出来,留作以后参考
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-5-21 14:41:41 | 显示全部楼层
安卓物理键返回需要添加的程序思路如下:模型加载时,当设备准备完毕时,将监听物理返回键的代码挂到backbutton上
    当检测到用户按物理返回键时,首先在浏览器的localStorage里面检查当前页面是否为主页面
          如果是主页面,需要提示用户再按一次才能推出系统
          如果不在主页面,则退回父界面
当主页面卸载时,将物理返回键的监听函数卸载,防止给其他程序造成污染

需要注意的两点:
1、在APP中,我所有的子界面都是通过winDialog打开的
2、所有winDialog的routable属性sheweitrue

长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-5-21 14:43:22 | 显示全部楼层
Model.prototype.modelLoad = function(event){
               
               
                localStorage.setItem("Lawrance_MainIndex","MainPage");
                //当用户点击安卓的物理返回按键时

                document.addEventListener("deviceready", function() {        //当设备准备完成时,增加一个事件监听函数
                        var exitAppTicker = 0;        //退出APP点击次数
                        var listener = function(){                //定义listener监听者
                                if(localStorage.getItem("Lawrance_MainIndex")=="MainPage"){        //判断一下当前是否在主页面
                                        if(exitAppTicker == 0){        //如果第一次点击退出APP
                                                exitAppTicker++;        //点击次数增加1
                                                //退出应用消息框
                                                var msg = $('<div  style="z-index:999;text-align:center;font-size:16px;background-color:#808080;color:#FFFFFF;border-radius: 6px;-webkit-transition:all 0.4s;-webkit-transform:translate3d(0,-100%,0);position:absolute;top:80%;left:25%;height:40px;line-height:40px;width:50%;">再按一次退出应用</div>').appendTo('body');
                                                setTimeout(function(){
                                                        msg.transform('translate3d(0,0,0)');
                                                },1);        //展现对话框
                                                setTimeout(function(){
                                                        exitAppTicker = 0;        //3秒后点击次数清零,对话框消失
                                                        msg.transform('translate3d(0,-100%,0)').transitionEnd(function(){
                                                                msg.remove();       
                                                        });
                                                },2000);
                                        }else if(exitAppTicker == 1){                //如果已经点击一次
                                                navigator.app.exitApp();                //则退出APP
                                        }       
                                }else{        //如果在其他页面,则返回父界面
                                        history.back();

                                }
                        };
                        document.addEventListener('backbutton', listener, false);
                        $(window).on('beforeunload', function(){
                                document.removeEventListener('backbutton', listener, false);
                    });
        }, false);
               
        };

长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
 楼主| 发表于 2015-5-21 14:44:47 | 显示全部楼层
在主界面打开子界面时,在winDialog组件的事件中添加如下函数:

        Model.prototype.windowDialog1Close = function(event){
                       
                        localStorage.setItem("Lawrance_MainIndex","MainPage");
        };


        Model.prototype.windowDialog1Open = function(event){
                localStorage.setItem("Lawrance_MainIndex","NoMainPage");
        };
       
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

33

主题

213

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
发表于 2015-6-5 00:56:28 | 显示全部楼层
Masion 发表于 2015-5-21 14:44
在主界面打开子界面时,在winDialog组件的事件中添加如下函数:

        Model.prototype.windowDialog1Close = f ...

主页是能实现了,为什么打包好了我的子页按返回键  没有任何反应
回复 支持 反对

使用道具 举报

191

主题

688

帖子

3323

积分

论坛元老

Rank: 8Rank: 8

积分
3323
QQ
发表于 2015-6-9 18:22:09 | 显示全部楼层
子窗口也可能再打开子窗口,所以localStorage的方式还是有些问题的。
轻量化ERP--企业邦  网址:meiprocess.cn
qq:8269301
手机:13801998595
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 10:13 , Processed in 0.113963 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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