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

QQ登录

只需一步,快速开始

查看: 2287|回复: 3

[分享] 物理返回键(回退键)的处理

[复制链接]

27

主题

77

帖子

450

积分

中级会员

Rank: 3Rank: 3

积分
450
QQ
发表于 2016-7-25 09:30:15 | 显示全部楼层 |阅读模式
本帖最后由 lchniao 于 2016-7-25 09:31 编辑

在开发程序中我们都会遇到要处理物理返回键是后退还是退出的问题
论坛中也已经明确的说明了该怎么处理,见:
http://docs.wex5.com/wex5-app-question-list-2003/

调用方法也有例子,在淘宝和网易的首页中都有调用返回键的处理。

大体思路就是:
通过获取首页当中的一个组件标识(可以是组件名称),也可以是组件当中的一个属性,
反正就是唯一的一个标识。
通过判断这个标识是不是你要的标识来确定是不是在首页点击了返回按键,是的话就退出,不是就后退
案例中的回退判断:判断组件contents2是否在当前活动中


                shellImpl.useDefaultExitHandler = false;

                CommonUtils.attachDoubleClickExitApp(function() {
                        
                        var isHomePage = shellImpl.pagesComp.contents[0].innerContainer.getInnerModel().comp('contents2').getActiveIndex() == 0;
                        if (shellImpl.pagesComp.getActiveIndex() === 0 && isHomePage) {
                                return true;
                        }
                        return false;
                });


我的应用中所用的判断:我所使用的是baseURI这个属性中是否含有center来判断是否是主页               
               shellImpl.useDefaultExitHandler = false;

                CommonUtils.attachDoubleClickExitApp(function() {
                        var isHomePage =false;
                        isHomePage = shellImpl.pagesComp.$active.context.baseURI.indexOf("center") > 0 ;
                        if (isHomePage) {
                                return true;
                        }
                        return false;
                });



center的由来是从pageMappings来的;center代表跳转到主页
var shellImpl = new ShellImpl(this, {
                        contentsXid : "pages",
                        wingXid : "wing",
                        pageMappings : {
                                "center" : {
                                        url : require.toUrl('$UI/nqcj/main/main.w')
                                },
                                "personal" : {
                                        url : require.toUrl('./personal.w')
                                }
                        }




调试:调试需要真机调试,相关方法论坛中也有

23

主题

111

帖子

1255

积分

金牌会员

Rank: 6Rank: 6

积分
1255
QQ
发表于 2017-1-11 10:10:33 | 显示全部楼层
mark一下,晚上回去试试
回复 支持 反对

使用道具 举报

23

主题

111

帖子

1255

积分

金牌会员

Rank: 6Rank: 6

积分
1255
QQ
发表于 2017-1-11 21:30:59 | 显示全部楼层
你那个我实测不可用(反正在我上面不行),我用的这个
window.location.hash.indexOf("!main") > 0
回复 支持 反对

使用道具 举报

22

主题

82

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
QQ
发表于 2017-3-13 17:17:32 | 显示全部楼层
hisoon 发表于 2017-1-11 21:30
你那个我实测不可用(反正在我上面不行),我用的这个
window.location.hash.indexOf("!main") > 0 ...

亲,用了你这个虽然能达到效果了,但是如果在使用过程中用APP打开了其他的APP再返回来,物理返回键就失效了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 19:51 , Processed in 0.076524 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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