|
本帖最后由 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')
}
}
调试:调试需要真机调试,相关方法论坛中也有
|
|