在Sencha touch中,如果我使用导航视图,我可以返回按钮。这很好。
但是,如果用户点击设备后退按钮?它直接退出了应用领域。在我的要求中,它不应该退出应用程序,它必须返回到前一个屏幕。我该如何做到这一点?
如何处理sencha touch应用程序上的设备后退按钮
回答
您可以处理硬件后退按钮这样的:
if (Ext.os.is('Android')) {
document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);
function onBackKeyDown(eve) {
eve.preventDefault();
//do something
alert('back button pressed');
}
}
我应该使用哪个类或JS文件? – 2015-07-07 03:25:27
我在历史记录支持页面上没有找到有用的说明;无论如何,在处理导航视图时,无论如何都无法使用路线,导航视图随时可能有大量视图。
如果您只是希望后退按钮能够正常工作,则可以使用popstate
和pushstate
函数(请参阅https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history以供参考)。这个想法就是你push
在添加视图时的状态,当删除视图时pop
关闭。 Android手机上的物理后退按钮或桌面浏览器上的后退按钮有效呼叫history.back()
;所以你需要做的就是确保按下标题栏上的后退按钮不变,这是触发导航视图弹出的那个按钮。
要利用它在煎茶触摸工作,我添加以下到主控制器:
在裁判我有到main
视图(的Ext.navigation.View
实例)的引用和其标题栏,从中可以钩到后退按钮例如的情况下:
refs: {
main: 'mainview',
mainTitleBar: 'mainview titlebar',
}...
我经由control
配置对象附加以下功能..
control: {
main: {
push: 'onMainPush'
},
mainTitleBar: {
back: 'onBack'
},
...
这些被定义为:
onMainPush: function(view, item) {
//do what ever logic you need then..
history.pushState();
},
onBack: function() {
history.back(); //will cause the onpopstate event to fire on window..
//prevent back button popping main view directly..
return false;
},
我然后附上当该状态通过的init函数弹出以执行功能..
init: function() {
/* pop a view when the back button is pressed
note: if it's already at the root it's a noop */
var that = this;
window.addEventListener('popstate', function() {
that.getMain().pop();
}, false);
},
现在,按压背面上的标题栏,执行history.back()
,这又会触发popstate
事件,然后导致主视图弹出。
如果你想看到这个工作在一个真实的应用程序,有一个(v。basic!)财产取景器应用程序在github上使用这种技术here。
- 1. 如何让Sencha Touch应用程序在Blackberry设备上工作
- 2. sencha touch ::如何处理我的sencha touch应用程序中的iOS
- 3. Sencha Touch:按钮
- 4. PhoneGap的处理后退按钮不关闭应用程序
- 5. 如何在物理设备上运行sencha应用程序
- 6. 后退按钮不处理应用程序/主动活动
- 7. 如何在后退按钮上按下应用程序
- 8. 在Sencha Touch中处理单选按钮上的事件
- 9. 如何可能处理后退按钮
- 10. 后退按钮处理wp7
- 11. Android - 处理后退按钮
- 12. 处理android后退按钮
- 13. 处理后退按钮
- 14. 如何在设备上按下后退按钮来完成listActivity
- 15. 如何在片段上实现后退按钮按下设备
- 16. iPhone应用程序,如何处理与动态内容后退按钮
- 17. sencha touch - setMasked从按钮处理程序调用不会呈现,直到处理程序完成?
- 18. 使设备的后退按钮像操作栏上一样(后退)按钮
- 19. 如何在没有NavigationView的情况下在sencha touch应用程序中处理返回按钮?
- 20. Win10 UWP应用程序处理长按回退按钮
- 21. 导航应用程序 - 后退按钮
- 22. 如何在用户触摸Android设备的主页按钮或后退按钮时销毁应用程序?
- 23. Sencha touch动画的后处理程序没有功能
- 24. 后退按钮关闭应用程序
- 25. 如何避免[navpush]生成的后退按钮(处理生成后退按钮)
- 26. 设备的后退按钮说明
- 27. 向上按钮退出应用程序?
- 28. 如何处理Windows Phone 7上的后退按钮
- 29. 如何处理仅在特定页面上的后退按钮?
- 30. 如何在sencha touch 2.0.0应用程序中集成FB like按钮
这是我也面临着同样的问题。由于所有应用程序都是由单个(不是必需的)html文件驱动的,因此以前访问过的页面没有历史记录,并且应用程序在后退键上关闭。如果你正在使用,可能有一种方法来自phonegap。 – SachinGutte 2012-08-03 15:39:27
请显示您的代码。 – hekomobile 2012-08-03 17:56:27
它的应用程序不是一个单独的文件粘贴在这里。包含所有文件系统和大量文件 – atluriajith 2012-08-06 05:43:44