`

phonegap + sencha touch 监控backbutton按钮返回事件切换页面

阅读更多

前提:

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-touch2.0实现的android程序

    PhoneGap和Sencha Touch是两种在移动应用开发中广泛使用的框架,它们的结合可以让你创建跨平台的原生感观的Android应用程序。本教程将深入探讨如何利用PhoneGap和Sencha Touch 2.0来构建Android应用。 PhoneGap,现...

    phonegap框架简介与phonegap+Sencha源码实例 手机开发入门

    本资源包含有:PhoneGap框架简介、phonegap开发入门pdf(英文版)、外加一个phonegap+sencha-touch 的webapp 项目; 运行环境为:eclipse+jdk 1.5,模拟器为2.1。

    phonegap与sencha touch2的js库

    PhoneGap与Sencha Touch 2是两个非常重要的框架,它们在构建移动终端Web应用程序中扮演着关键角色。本文将深入探讨这两个技术,并介绍如何利用它们共同开发高效的移动Web应用。 PhoneGap,现已被Adobe公司收购并...

    移动端混合开发,sencha_touch+phonegap+android简单架构代码案例

    本文将详细解析"移动端混合开发,sencha_touch+phonegap+android简单架构代码案例",帮助你理解和掌握如何使用Sencha Touch、PhoneGap与Android构建混合应用。 **Sencha Touch** 是一款基于JavaScript的UI框架,...

    senchaTouch+PhoneGap

    Sencha Touch是Sencha公司推出的一款专为移动设备设计的JavaScript框架,它提供了丰富的组件库,包括网格、表单、按钮、导航视图等,用于创建具有触摸友好界面的应用。Sencha Touch的设计理念是提供与原生应用相媲美...

    PhoneGap+javascript+html5 扫描二维码

    标题提到的"PhoneGap+javascript+html5 扫描二维码"是指利用PhoneGap框架,结合JavaScript和HTML5的特性来实现二维码扫描功能。在移动应用中,二维码扫描是非常实用的功能,可以用于快速数据交换、链接跳转、会员...

    sencha-touch + cordova(PhoneGap)使用adt-eclipse打包实例

    Sencha Touch 和 Cordova(PhoneGap)是两个在移动应用开发中广泛使用的框架。Sencha Touch 是一个专门用于创建触屏设备上的富交互应用的JavaScript库,提供了丰富的UI组件和强大的数据管理功能。Cordova(PhoneGap...

    phonegap性能优化 以及phonegap + Angularjs + ionic 移动app开发介绍

    ### PhoneGap性能优化及PhoneGap + AngularJS + Ionic移动App开发介绍 #### 一、PhoneGap性能优化 **1.1 PhoneGap简介** - **定义:** PhoneGap是一个开放源码项目,它允许开发者使用HTML、CSS和JavaScript这些Web...

    PhoneGap+Jquery+Html5实现远程登录功能(附带源码)

    在PhoneGap应用中,为了处理服务器的响应,我们需要在$.ajax调用中设置dataType为"json",因为大多数现代API都倾向于以JSON格式返回数据。然后,在success回调中,我们可以根据服务器返回的状态更新UI,例如显示登录...

    Sencha Touch in Action

    《Sencha Touch in Action》是一本关于使用Sencha Touch进行跨平台移动开发的书籍,它详细介绍了Sencha Touch框架的使用方法和技巧。Sencha Touch是一个利用HTML5、CSS3和JavaScript创建移动Web应用程序的框架,它是...

    phonegap+jqueryMobilejs源码项目

    在这个"phonegap+jqueryMobilejs源码项目"中,我们可以期待看到以下关键知识点: 1. **PhoneGap环境搭建**:首先,我们需要安装PhoneGap的开发环境,包括Node.js、Apache Cordova和对应的平台SDK(如Android SDK或...

    Android Phonegap+HTML5+CSS3+jQuer简单界面模板示例及源码.zip源码资源下载

    Android Phonegap+HTML5+CSS3+jQuer简单界面模板示例及源码.zip源码资源下载Android Phonegap+HTML5+CSS3+jQuer简单界面模板示例及源码.zip源码资源下载

    phonegap+websocket+tomcat实现推送功能

    总的来说,"phonegap+websocket+tomcat实现移动终端推送功能"项目涉及到的技术栈包括前端的PhoneGap应用开发、WebSocket的JavaScript客户端实现、后端的Tomcat服务器配置以及WebSocket的Java服务端编程。通过这一...

    android+phonegap+jquery mobile

    【标题】:“Android + PhoneGap + jQuery Mobile” 这个项目标题揭示了一个使用三种技术栈构建的移动应用程序:Android、PhoneGap和jQuery Mobile。Android是Google主导的开源操作系统,主要用于智能手机和平板...

    一个完整的sencha touch 应用案例

    5. **config.xml**:在Sencha Touch中,这个文件可能用于配置应用程序的元数据,比如应用的名称、版本、图标、启动画面等,通常是针对PhoneGap或Cordova这样的混合应用开发环境。 6. **resource**:这个文件夹可能...

    PhoneGap+jQueryMobile开发Android应用实例

    PhoneGap+jQueryMobile开发Android应用实例,搭建开发环境

    HTML5+PhoneGAP+JQM门店源代码框架

    HTML5+PhoneGAP+JQM门店源代码框架。 未完成,包括后台JSON部分。自己查找,后来我屏蔽掉了,但是效果是好的,由于模拟器太慢了,最后屏蔽了,但是代码可用。 开发环境Dreamweaver cs5.5.后台ASP.NET。

    PhoneGap+Jquery mobile汇率计算器

    在这个"PhoneGap+jQuery Mobile汇率计算器"项目中,首先,我们需要创建一个基本的HTML结构,包含必要的页面元素,如输入框(用于输入金额)、下拉菜单(选择货币类型)、按钮(执行计算)以及显示结果的区域。...

    PhoneGap+Jquery mobile

    例如,使用`<div data-role="page">`定义一个页面,`<div data-role="header">`和`<div data-role="footer">`创建头部和尾部,`<a data-role="button">`定义按钮等。 5. **实现功能**:利用JavaScript和jQuery ...

    phonegap+jqueryMobile例子

    在这个“phonegap+jqueryMobile例子”中,我们将深入探讨这两个工具如何协同工作,以及如何利用它们创建Android应用程序。 PhoneGap是一个开源框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用。...

Global site tag (gtag.js) - Google Analytics