原文:Cordova各种事件

Cordova事件

Cordova框架了一组事件,开发者用来对某些运行Cordova应用的设备上的事件作出反应。事件处理的一种情况是硬件相关活动,如电池状态变化或用户按了某个物理按钮;另一种情况是应用程序状态的变化,如应用被中止或恢复。这些web应用使用的事件同Native应用使用的是一样的。

完整的支持的事件列表如下:

Cordova 事件 描述
backbutton 用户按设备后退键时触发
batterycritical 电池达到关键状态时触发。关键状态的定义因平台而异
batterylow 电池低电量状态时触发。低电量状态的定义因平台而异
batterystatus 电池状态至少改变1%时时触发(增加或减少)
deviceready cordova容器完成初始化时触发
endcallbutton 在用户按手机的结束通话键时触发
menubutton 在用户按手机的菜单键时触发
offline 在设备失去网络连接时触发
online 在设备由没有网络连接转换到连接状态时触发
pause Cordova应用被挂起时触发。一般发生在用户跳转到另一个应用,系统把当前应用放在后台时
resume 在被挂起的应用转到前台时触发
searchbutton 在用户按查找键时触发
startcallbutton 在用户按通话键时触发
volumedownbutton 用户按音量减少键时触发
volumnupbutton 用户按音量键增加时触发

老式手机使用物理按钮来拨通和结束通话。在较新的设备上,这些按钮被移除并用虚拟按键代替。虚拟按键只在用到(如菜单和查找按键),或只用于某些应用(像电话按键)。

大多数的列出的事件都在Cordova容器中实现了。只有电池状态以插件形式实现了。要使应用能够监视电池事件必须首先添加电池状态插件:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin=battery-status.git

其中device事件在《cordova应用解析》讨论过。

要监视这些事件可以简单的在应用中为某个事件注册监听器。

document.addEventListener("eventName", eventFunction);

如要监听是否断开网络连接,可以注册offline事件的监听器:


 
  1. document.addEventListener("offline", isOffline);

  2.  
  3. function isOffline() {

  4. // 断开网络连接时的动作

  5. }

  6.  

事件在不同的移动平台上并不都准确的按期望的情况触发,需要在不同设备上测试确保应用按期望的工作。

 

测试过的事件如下:

 


 
  1. /********Cordova事件绑定******/

  2. document.addEventListener('backbutton', function () {

  3. console.info("后退键被点击");

  4. }, false);

  5. document.addEventListener('deviceready', function () {

  6. console.info("cordova容器完成初始化时触发");

  7. }, false);

  8. document.addEventListener('menubutton', function () {

  9. console.info("在用户按手机的菜单键时触发");

  10. }, false);

  11. document.addEventListener('pause', function () {

  12. console.info("Cordova应用被挂起时触发");

  13. }, false);

  14. document.addEventListener('resume', function () {

  15. console.info("在被挂起的应用转到前台时触发");

  16. }, false);

  17. document.addEventListener('startcallbutton', function () {

  18. console.info("在用户按通话键时触发");

  19. }, false);

最新文章

  1. OpenCV Show Image cvShowImage() 使用方法
  2. Vim保存文件命令 ":wq" 与 ":x" 的区别
  3. Appium —— desired_capabilities详解
  4. 1090. Highest Price in Supply Chain (25)
  5. Eclipse如何导出可执行jar包
  6. build path--use as source folder 应用
  7. 《Java并发编程的艺术》Java内存模型(三)
  8. ORACLE 快速刷新物化视图的方法(11g)
  9. ngClass指令3种使用
  10. 通过C# WinForm控件创建的WPF WIndow窗口控件无法输入的问题
  11. Linux命令echo
  12. GPS获取坐标 显示Google map偏差计算
  13. Jacoco的原理(各个覆盖率的解释)
  14. Xcode10升级项目报错library not found for -lstdc++.6.0.9
  15. HttpClient使用示例
  16. 二、mysql存储引擎之InnoDB
  17. win10 禁用自动更新
  18. GraphicsMagick +im4java高并发处理大型网站图片工具-图片剪切、遮蔽、水印添加之环境搭建
  19. jenkins插件
  20. netty下载源码并导入idea

热门文章

  1. qemu 参数简介
  2. Webpack学习手册
  3. Spring拦截器和Servlet过滤器区别
  4. ubuntu 14 编译视频第三方库ijkplayer,能够在winows下使用
  5. 得到INI文件所有Section(所有节点名称)
  6. redis 的惊群处理和分布式锁的应用例子
  7. LIVE555源代码研究之四:MediaServer (一)
  8. crontab经验 分类: B3_LINUX 2015-03-06 11:17 282人阅读 评论(0) 收藏
  9. showSoftInput不起作用
  10. swift学习第四天:swift中的循环