码迷,mamicode.com
首页 > Windows程序 > 详细

PhoneGap API 之事件处理

时间:2015-06-12 19:22:48      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

一、 deviceready 事件

  1、在使用 PhoneGap 开发应用时,deviceready 事件是非常常用的。这一事件在设备的本地 环境和页面完全加载完成之后才触发

  2、注意:此事件一般晚于 jquery 的 ready 事件,jquery 的 ready 事件是在 DOM 完全加载 完成后触发,deviceready 则是设备的本地环境和页面完全加载完成之后才触发

  3、PhoneGap 包含两个基础,native 和 JavaScript,当 native 加载的时候,自定义的一些图片 会被调用,

     而 JavaScript 需要在 DOM 加载后就会被加载。这是可能造成 JavaScript 在图片加 载前就已经被调用了。

     使用 deviceready事件可以很好的解决这类问题,他可以保证PhoneGap是在完全加载完成后,才会被触发。

 

二、 pause 事件

  当 PhoneGap 应用被置为后台时触发

 

 

三、 resume 事件

  当 PhoneGap 应用重新从后台置为前台时触发

 

 

四、 online 事件

  当 PhoneGap 应用连接因特网时触发

 

五、 offline 事件

  当 PhoneGap 应用断开因特网时触发

 

六、 backbutton 事件

  当单击退回按钮时触发

 

七、 menubutton 事件

  当单击菜单按钮时触发

 

 

八、 batterycritical 事件

  当 PhoneGap 应用监控到电池达到警告时触发(20%) batterycritical 的处理程序将会调用一个对象。

  该对象包含以下两个属性:

     level:电池剩余电量的百分比,取值范围是 0-100。(数字类型)

     isPlugged:boolean 型的值,表示设备是否接通电源。

 

 

九、 batterylow 事件

  在电量非常低的情况下触发(5%) batterylow 的处理程序将会调用一个对象。

  该对象包含以下两个属性: 

    level:电池剩余电量的百分比,取值范围是 0-100。(数字类型)

    isPlugged:boolean 型的值,表示设备是否接通电源。

 

 

十、 batterystatus 事件

  PhoneGap 应用监控到电池状态有改变时触发(每当电量变化 1%的时候触发一次)

  batterystatus 的处理程序将会调用一个对象,该对象包含以下两个属性:

    level:电池剩余电量的百分比,取值范围是 0-100。(数字类型)

    isPlugged:boolean 型的值,表示设备是否接通电源。

 

 

十一、主要代码的实现

<!DOCTYPE html> 
<html>
<head>
<meta charset="utf-8">
<title>jQuery  Mobile  Web 应用程序</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>

<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function(){
        //注册设备和页面加载完成的监听事件deviceready,当设备加载完成后执行myDeviceready这个函数
        //第一个参数是监听的事件,第二个参数是回调函数,当触发这个事件时执行的函数,第三个参数是false
        document.addEventListener(deviceready,myDeviceready,false);
    })
    
    function myDeviceready(){
        //alert(‘设备加载完成‘);
        console.log(设备加载完成);//在eclipse控制台中打印
        $("#deviceStatus .ui-btn-text").text("设备加载完成");//更改html中的文字
        
        
        //当设备加载完后,注册其他事件
        document.addEventListener(pause,myPause,false);
        document.addEventListener(resume,myResume,false);
        
        document.addEventListener(online,myOnline,false);
        document.addEventListener(offline,myOffline,false);
        
        document.addEventListener(backbutton,myBackbutton,false);
        document.addEventListener(menubutton,myMenubutton,false);
        
        //batterystatus
        window.addEventListener(batterystatus,myBatterystatusListener,false);
        
        window.addEventListener(batterycritical,myBatterycritical,false);
        
        window.addEventListener(batterylow,myBatterylow,false);
        
    }
    //应用被置为后台以后执行的函数
    function myPause(){
        console.log(应用被置为后台);
        $(#deviceCurrentStatus .ui-btn-text).text(应用被置为后台);
        
    }
    //应用被置为前台
    function myResume(){
        console.log(应用被置为前台);
        $(#deviceCurrentStatus .ui-btn-text).text(应用被置为前台);
    }
    
    
    //连接网络的时候执行的事件
    function myOnline(){
        console.log(连接网络的时候执行的事件);
        $(#deviceConectionStatus .ui-btn-text).text(连接网络的时候执行的事件);
    }
    //断开网络执行的事件
    function myOffline(){
        console.log(断开网络执行的事件);
        $(#deviceConectionStatus .ui-btn-text).text(断开网络执行的事件);
    }
    
    
    var backcount=0;
    var menucount=0;
    //点击返回按钮的事件
    function myBackbutton(){
        console.log(返回按钮被点击了);
        backcount++;
        $(#backButtonTouch .ui-btn-text).text(返回按钮被点击了+backcount+);
    }
    //菜单按钮
    function myMenubutton(){
        console.log(菜单按钮被点击了);
        menucount++;
        $(#menuButtonTouch .ui-btn-text).text(菜单按钮被点击了+menucount+);
    }    
    
    
    //电量状态
    function myBatterystatusListener(info){
        console.log("电量值" + info.level);
        $("#batterystatus .ui-btn-text").text("电量值" + info.level+info.isPlugged);
    }
    //电量低于20%的时候触发
    function myBatterycritical(info){
        console.log("电量低于20%的时候触发" + info.level);        
    }
    //电量低于5%的时候触发
    function myBatterylow(info){
        console.log("电量低于5%的时候触发" + info.level);        
    }
    
</script>
</head>
<body>
    <div data-role="page">
        <div data-role="header">
            <h1>PhoneGap实战</h1>
        </div>
        <div data-role="content">
            <a href="#" data-role="button" id="deviceStatus">设备加载中....</a>
            <a href="#" data-role="button" id="deviceCurrentStatus">应用为前台</a>
            <a href="#" data-role="button" id="deviceConectionStatus">连接加载中....</a>
            <a href="#" data-role="button" id="backButtonTouch">返回按钮被按0次</a>
            <a href="#" data-role="button" id="menuButtonTouch">菜单按钮被按0次</a>
            <a href="#" data-role="button" id="batterystatus">电量获取中...</a>
        </div>
        <div data-role="footer">
            <h4>&nbsp;</h4>
        </div>
    </div>
</body>
</html>

 

PhoneGap API 之事件处理

标签:

原文地址:http://www.cnblogs.com/LO-ME/p/4572344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!