前提:
sencha cmd创建好sencha项目,安装好cordova环境。
详细配置过程
sencha:http://docs-origin.sencha.com/cmd/5.x/touch/cmd_app.html
cordova:http://cordova.apache.org/docs/en/5.0.0/guide_cli_index.md.html#The%20Command-Line%20Interface
在项目中cordova/www/index.js绑定对backbutton的事件监控
bindEvents: function(){ document.addEventListener('deviceready', this.onDeviceReady, false); document.addEventListener("backbutton", eventBackButton, false); //返回键 }
对应eventBackButton代码
function eventBackButton(){ //confirm("再点击一次退出!"); window.plugins.toast.showShortBottom('再点击一下返回,将退出私募通。'); document.removeEventListener("backbutton", eventBackButton, false); //注销返回键 //3秒后重新注册 var intervalID = window.setInterval(function(){ window.clearInterval(intervalID); document.addEventListener("backbutton", eventBackButton, false); //返回键 },3000); }
这样设置完后就可以监控到android设备的back按钮事件,防止点击back键后直接退出。
方法中用户的 window.plugins.toast.showShortBottom 是cordova插件,安装地址是https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin
界面间如何在sencha touch中使用back键进行跳转。
sencha touch页面布局逻辑为,Main.js采用card布局,其他子页面动态添加到Main中,如何使用back键进行页面间跳转。这里主要使用card布局的activeitemchange事件,在页面切换时触发此事件,进行back按钮的事件注册。
layout: { type : 'card', animation : 'scroll', listeners : { 'activeitemchange' : function(lay,newActiveItem,oldActiveItem){ var newActiveItemBackHandler; if(newActiveItem){ newActiveItemBackHandler = newActiveItem.backButtonHandler || newActiveItem.config.backButtonHandler; } var oldActiveItemBackHandler; if(oldActiveItem){ oldActiveItemBackHandler = oldActiveItem.backButtonHandler || oldActiveItem.config.backButtonHandler; } if(newActiveItemBackHandler){ // 绑定打开页面的返回按钮事件 document.removeEventListener("backbutton", eventBackButton, false); if(oldActiveItemBackHandler){ document.removeEventListener("backbutton", oldActiveItemBackHandler,false); } document.addEventListener("backbutton", newActiveItemBackHandler, false); }else{ if(oldActiveItemBackHandler){ document.removeEventListener("backbutton", oldActiveItemBackHandler, false); document.addEventListener("backbutton", eventBackButton, false); } } } } }
newActiveItem,oldActiveItem分别对应新页面和旧页面。
在每个页面里可以自定义委托方法,进行页面间逻辑跳转。
backButtonHandler : function(event){ // 防止弹出分享菜单后,back键返回上一页 var socialShareView = Ext.getCmp('_SocialShareView'); if(socialShareView!=null&&!socialShareView.isHidden()){ return true; } // 防止android back键在弹出窗户后返回到上一页 if(Ext.Msg.isHidden()!=null&&!Ext.Msg.isHidden()){ return; } var mainView = Ext.getCmp('_MainView'); var fromView = Ext.getCmp('_EpNeedDetailView').getFromViewString(); if(fromView == "collect"){ // 返回我的收藏 mainView.animateActiveItem(mainView.myCollectView,{type: 'slide', direction: 'right'}); }else{ // 返回首页 var topView = Ext.getCmp('_TopView'); mainView.animateActiveItem(topView,{type: 'slide', direction: 'right'}); } }
这样就可以通过委托方法,控制页面间跳转了。
还需要注意一点,在返回事件委托方法中,要判断一下当前页面有没有Ext.Msg元素,如果有的话需要禁止backButtonHandler的执行。
相关推荐
如果你不是研究phoneGap和sencha的就别下载啊!浪费你的积分了!
本资源包含有:PhoneGap框架简介、phonegap开发入门pdf(英文版)、外加一个phonegap+sencha-touch 的webapp 项目; 运行环境为:eclipse+jdk 1.5,模拟器为2.1。
从官网下的phonegap与sencha touch2的js库,两者共同开发移动终端的webapp
一个简单的实现sencha touch+phonegap集成的混合开发代码案例
phoneGap是不会手机开发的人员可以进使用JS+html来进行手机开发 使程序员们可以跨编程语i言进行各种平台的手机开发了
phonegap性能优化 以及phonegap + Angularjs + ionic 移动app开发介绍
PhoneGap+开发指南
sencha-touch + cordova(PhoneGap)使用adt-eclipse打包实例
phonegap+jqueryMobilejs源码项目
PhoneGap+Jquery mobile,完整开发代码.
phonegap+websocket+tomcat实现移动终端推送功能 ,android版
涨姿势了,安卓也可以用h5开发,sencha touch+PhoneGap打包 好处是可以用浏览器浏览,调试。跟大家分享学习,欢迎下载,评论。
NULL 博文链接:https://guoqiantong.iteye.com/blog/1744129
phonegap+jqueryMobile例子
jQuery+Mobile+和+PhoneGap+集成开发 教你如何轻松建一个手机版网页
phonegap+HTML+appframework入门应用 使用node.js搭建服务器,当客户端访问时返回json对象,客户端解析json对象并显示解析结果。文件夹中有使用说明
Android Phonegap+HTML5+CSS3+jQuer简单界面模板示例及源码.zip源码资源下载Android Phonegap+HTML5+CSS3+jQuer简单界面模板示例及源码.zip源码资源下载
jqmobi+phonegap+手机触屏滑动效果js 动态设置手机高宽度
PhoneGap+jQueryMobile开发Android应用实例,搭建开发环境
HTML5+PhoneGAP+JQM门店源代码框架。 未完成,包括后台JSON部分。自己查找,后来我屏蔽掉了,但是效果是好的,由于模拟器太慢了,最后屏蔽了,但是代码可用。 开发环境Dreamweaver cs5.5.后台ASP.NET。