Cordova 事件

763 阅读4分钟

Cordova 事件

Cordova 一共有 个事件

  • deviceready cordova 加载完成事件
  • pause 程序进入后台
  • resume 从后台进入程序
  • backbutton 按下返回按钮
  • menubutton 按下菜单按钮
  • searchbutton 按下搜索按钮
  • startcallbutton 按下通话按钮
  • endcallbutton 按下挂断通话按钮
  • volumedownbutton 按下声音下键按钮
  • volumeupbutton 按下声音上键按钮

deviceready

当Cordova完全加载好deviceready事件会触发。这个事件对每一个应用程序都是必须的。他是Cordova设备API准备好并可以访问的信号。

一旦Cordova全部加载deviceready事件就会触发。一定事件出发,你可以安全的进行CordovaAPI的调用。应用程序通常一旦HTML document DOM加载完成,就会使用 document.addEventListener绑定一个事件监听。

deviceready事件和其他事件有点不同。其他事件的事件处理函数注册都是在deviceready事件出发的回调函数中立马执行。

简单实例

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    // 现在可以安全的使用设备API
}

pause 程序进入后台

当原生平台把应用程序放入后台这个pause事件会触发,通常是用户切换到了不同的应用程序。

简单例子:

document.addEventListener("pause", onPause, false);

function onPause() {
    // 处理pause事件
}

resume 从后台进入程序

当原生平台将应用程序从后台运行拉出resume事件就会触发。

简单例子:

document.addEventListener("resume", onResume, false);

function onResume() {
    // 处理resume事件
}

menubutton (按下菜单按钮)

当用户按下菜单按钮事件触发,如果你需要重写默写行为你可以注册menubutton事件监听。

现在新款智能机未找到菜单按钮

简单例子:

document.addEventListener("menubutton", onMenuKeyDown, false);

function onMenuKeyDown() {
    // 菜单按钮事件的事件处理函数
}

searchbutton (按下搜索按钮)

Android中当用户按下搜索按钮事件触发,如果你需要重写默写行为你可以注册'searchbutton'事件监听。

现在新款智能机未找到搜索按钮

简单例子:

document.addEventListener("searchbutton", onSearchKeyDown, false);

function onSearchKeyDown() {
    // 搜索按钮事件的事件处理函数
}

startcallbutton(按下通话按钮)

当用户按下通话按钮事件触发,如果你需要重写默写行为你可以注册startcallbutton 事件监听。

现在新款智能机未找到通话按钮

简单的例子

document.addEventListener("startcallbutton", onStartCallKeyDown, false);

function onStartCallKeyDown() {
    // 通话按钮事件的事件处理函数
}

endcallbutton(按下挂断通话按钮)

当用户按下挂断通话按钮事件触发,如果你需要重写默写行为你可以注册endcallbutton事件监听。

现在新款智能机未找到挂断通话按钮

document.addEventListener("endcallbutton", onEndCallKeyDown, false);

function onEndCallKeyDown() {
    // 挂断通话按钮事件的事件处理函数
}

volumedownbutton(按下降低声音按钮)

当用户按下降低声音按钮事件触发,如果你需要重写默写行为你可以注册volumedownbutton事件监听。

简单例子:

document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);

function onVolumeDownKeyDown() {
    // 降低声音按钮事件的事件处理函数
}

volumeupbutton(按下增加声音按钮)

当用户按下增加声音按钮事件触发,如果你需要重写默写行为你可以注册volumeupbutton事件监听。

简单例子:

document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);

function onVolumeUpKeyDown() {
    // 增加声音按钮事件的事件处理函数
}

代码实例

// 检测设备是否连接成功
document.addEventListener('deviceready', onDeviceReady, false);

function onDeviceReady() {
    // cordova 连接成功之后,显示连接成功文字
    console.log('Running cordova-' + cordova.platformId + '@' + cordova.version);
    document.getElementById('deviceready').classList.add('ready');
    /* 设备连接成功之后,才可以调用Cordova的原生事件 */
    // 当原生平台把应用程序放入后台这个pause事件会触发,通常是用户切换到了不同的应用程序。
    document.addEventListener("pause", onPause, false);
    // 当原生平台将应用程序从后台运行拉出resume事件就会触发。
    document.addEventListener("resume", onResume, false);
    // 当用户按下返回按钮事件触发,如果你需要重写默写行为你可以注册backbutton事件监听。不在需要其他调用方法来重写返回按钮的行为。
    document.addEventListener("backbutton", onBackKeyDown, false);
    // 当用户按下菜单按钮事件触发,如果你需要重写默写行为你可以注册menubutton事件监听。
    document.addEventListener("menubutton", onMenuKeyDown, false);
    // Android中当用户按下搜索按钮事件触发,如果你需要重写默写行为你可以注册'searchbutton'事件监听。
    document.addEventListener("searchbutton", onSearchKeyDown, false);
    // 当用户按下降低声音按钮事件触发,如果你需要重写默写行为你可以注册volumedownbutton事件监听。
    document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);
    // 当用户按下增加声音按钮事件触发,如果你需要重写默写行为你可以注册volumeupbutton事件监听。
    document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
}
function onPause() {
  log('后台挂起')
}

function onResume () {
  log('欢迎回来')
}

function onBackKeyDown() {
  log('您点击了返回按钮')
}

function onMenuKeyDown() {
  log('您点击了菜单按钮')
}

function onSearchKeyDown() {
  log('您点击了搜索按钮')
}
function onVolumeDownKeyDown() {
  log('您点击了音量下键按钮')
}

function onVolumeUpKeyDown() {
  log('您点击了音量上键按钮')
}

function log (msg) {
  let p = document.createElement('p')
  p.style.fontSize = '16px'
  p.innerHTML = msg
  document.body.appendChild(p)
}

效果展示:

此段代码中,监听了菜单按钮和搜索按钮,但在测试过程中,未发现此按钮,所以未能测试出来。