Phonegap 事件机制
PhoneGap事件包含另个部分,一个是传统网页触发的事件,比如DOM加载,超链接,form表单提交事件等。
另一个是PhoneGap独有的事件。如
deviceready:只在设备在本地环境和页面完全加载后触发。
backbutton: 重载系统的Back按纽
pasue: pasue事件
resume : resume事件
searchbutton: 当用户在Android系统上点击"搜索”时触发。
online:连接的网络时触发
offline: 没有网络时触发
menubutton :重新定义菜单行为
batterycritical : 电量达到临界值时触发
batterlow: 电量非常低时触发
Demo如下
1.首先创建PhoneGap Project
2.引入JQuery Mobile
3. 编辑HTML和JS代码
<!DOCTYPE html> <html> <head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
<!-- This is a wide open CSP declaration. To lock this down for production, see below. -->
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *" />
<!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: 'unsafe-inline' https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *" /> --> <link rel="stylesheet" href="css/jquery.mobile-1.4.5.min.css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<title>Hello World</title>
<script type="text/javascript" charset="utf-8"> var count = 0;
document.addEventListener('deviceready', onDeviceReady, false); function onDeviceReady(){
document.addEventListener("backbutton", onBackButton, false);
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
document.addEventListener("online", isOnline, false);
document.addEventListener("offline", isOffline, false);
document.addEventListener("menubutton", onMenuButton, false);
console.log("console device ready");
alert("device Ready");
} function onBackButton(){
count++;
console.log("Trigger back button event " + count + " time");
$.mobile.changePage("#page3",'pop',false,true);
} function onPause(){
console.log("myphonegap onPause function");
} function onResume(){
console.log("myphonegap onResume function");
} function isOnline(){
console.log("myphonegap isOnline function");
} function isOffline(){
console.log("myphonegap isOffline function");
} function onMenuButton(){
console.log("myphonegap onMenuButton function");
$.mobile.changePage("#page3",'pop',false,true);
} </script>
</head> <body>
<div id="page1" data-role="page" data-add-back-btn="true">
<header data-role="header"><h1>Hello world</h1></header>
<div data-role="content" class="content">
<p>第一页</p>
<p><a href="#page2">跳转到第二页</a> </p>
</div>
<footer data-role="footer"><h1>Footer</h1></footer>
</div>
<div id="page2" data-role="page" data-add-back-btn="true">
<header data-role="header"><h1>Hello world</h1></header>
<div data-role="content" class="content">
<p>第二页</p>
<p><a href="#page3">跳转到第三页</a> </p>
</div>
<footer data-role="footer"><h1>Footer</h1></footer>
</div>
<div id="page3" data-role="page" data-add-back-btn="true">
<header data-role="header"><h1>Hello world</h1></header>
<div data-role="content" class="content">
<p>第三页</p>
<p><a href="#page1">返回第一页</a> </p>
</div>
<footer data-role="footer"><h1>Footer</h1></footer>
</div>
<script type="text/javascript" src="cordova.js"></script>
</body> </html>
以下Code为注册事件监听
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady(){
document.addEventListener("backbutton", onBackButton, false);
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
document.addEventListener("online", isOnline, false);
document.addEventListener("offline", isOffline, false);
document.addEventListener("menubutton", onMenuButton, false);
console.log("console device ready");
alert("device Ready");
}
之后在Android Studio生成apk安装的Androd设备上。将会显示对应的Log。
Phonegap 事件机制的更多相关文章
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...
- tkinter事件机制
一.tkinter.Event tkinter的事件机制跟js是一样的,也是只有一个Event类,这个类包罗万象,集成了键盘事件,鼠标事件,包含各种参数. 不像java swing那种强类型事件,sw ...
- [解惑]JavaScript事件机制
群里童鞋问到关于事件传播的一个问题:“事件捕获的时候,阻止冒泡,事件到达目标之后,还会冒泡吗?”. 初学 JS 的童鞋经常会有诸多疑问,我在很多 QQ 群也混了好几年了,耳濡目染也也收获了不少,以后会 ...
- Atitit 数据库的事件机制--触发器与定时任务attilax总结
Atitit 数据库的事件机制--触发器与定时任务attilax总结 1.1. 事件机制的图谱1 2. 触发器的类型2 3. 实现原理 After触发器 Vs Instead Of触发器2 3.1. ...
- 深入浅出iOS事件机制
原文地址: http://zhoon.github.io/ios/2015/04/12/ios-event.html 本文章将讲解有关iOS事件的传递机制,如有错误或者不同的见解,欢迎留言指出. iO ...
- Java 事件机制
java事件机制包括三个部分:事件.事件监听器.事件源. 1.事件.一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息,用于listener的相应的方法之中,作 ...
- Angular $scope和$rootScope事件机制之$emit、$broadcast和$on
Angular按照发布/订阅模式设计了其事件系统,使用时需要“发布”事件,并在适当的位置“订阅”或“退订”事件,就像邮箱里面大量的订阅邮件一样,当我们不需要时就可以将其退订了.具体到开发中,对应着$s ...
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
DOM事件流(event flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...
- DOM事件机制进一步理解
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
随机推荐
- 文件读写网络IO简单了解,同步IO和异步IO
在Linux中,对文件的读写其实就是IO. 与IO有关的名词:同步,异步,阻塞,非阻塞,甚至是同步阻塞,同步非阻塞,异步阻塞,异步非阻塞.别急,下面有举例IO分为两大种,同步和异步 同步IO:阻塞IO ...
- python3 库pandas写入csv格式文件出现中文乱码问题解决方法
python3 库pandas写入csv格式文件出现中文乱码问题解决方法 解决方案: 问题是使用pandas的DataFrame的to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确 ...
- MySQL "Zero date value prohibited" 问题解析
问题起因 之前一直使用Oracle数据,对MySQL数据库使用不多,因此搞不懂MySQL的日期“0000-00-00 00:00:00”对程序会产生怎样的影响.费了我一下午的时间 -_-^^. 首先: ...
- Java实现:数据结构之排序
Java实现:数据结构之排序 0.概述 形式化定义:假设有n个记录的序列(待排序列)为{ R1, R2 , -, Rn },其相应的关键字序列为 { K1, K2, -, Kn }.找到{1,2, - ...
- Android下拉刷新控件--PullToRefresh的简单使用
Android中很多时候都会用到上下拉刷新,这是一个很常用的功能,Android的v4包中也为我们提供了一种原生的下拉刷新控件--SwipeRefreshLayout,可以用它实现一个简洁的刷新效果, ...
- hdu 4739 Zhuge Liang's Mines DFS
http://acm.hdu.edu.cn/showproblem.php?pid=4739 题意: 给定100*100的矩阵中n(n<= 20)个点,每次只能一走能够形成正方形的四个点,正方形 ...
- python 获取列表大于指定长度的元素
def long_words(n, str): word_len = [] txt = str.split(" ") for x in txt: if len(x) > n: ...
- 使用dos2unix批量转换文件
使用dos2unix批量转换文件 dos2unix是Linux下的一个用户转换格式的程序,由于windows上文件的结束符和linux上的不同,那么在windows上编写的文件或者是脚本在Linux上 ...
- [osgearth]通过API创建一个earth模型
通过API的方式大体需要以下几个步骤: 创建map对象—— 创建影像数据层—— 创建高程数据层—— 将影像数据层以及高程数据层加入到map对象—— 根据前面创建的map对象创建mapNode节点—— ...
- Hbase Scan的重要参数
Scan是操作Hbase中非常常用的一个操作,虽然前面的Hbase API操作简单的介绍了Scan的操作,但不够详细,由于Scan非常常用,关于其详细的整理也是很有必要的. Scan HBase中的数 ...