key
Key管理设备按键事件
方法:
- addEventListener: 添加按键事件监听器
- removeEventListener: 移除按键事件监听器
对象:
回调方法:
- KeyEventCallback: 按键事件的回调函数
模块:
5+功能模块(permissions)
{
// ...
"permissions":{
// ...
"Webview": {
"description": "窗口管理"
}
}
}
addEventListener
添加按键事件监听器
plus.key.addEventListener( keyevent, listener, capture );
说明:
添加按键事件监听器,当指定的按键事件发生时,回调函数将触发。 应用中存在多个Webview窗口时,按照窗口的显示栈顺序从后往前查找,查找到添加按键事件监听器的窗口后停止(中断前面Webview窗口对按键事件的监听),并向窗口触发执行按键回调事件。 在同一Webview窗口中可多次调用此方法对同一事件添加多个监听器,触发时按照添加的顺序先后调用。 注意:此方法无法监听软键盘的按键事件。
参数:
- event:
(
KeyType
)
必选 要监听的按键事件类型
- listener:
(
KeyEventCallback
)
必选 监听按键事件发生时调用的回调函数
- capture:
(
Boolean
)
可选 捕获按键事件流顺序,暂作为保留参数
返回值:
void : 无示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Key Example</title>
<script type="text/javascript">
// 监听“返回”按钮事件
function addEventTest() {
plus.key.addEventListener("backbutton",function(){
alert( "BackButton Key pressed!" );
});
}
</script>
</head>
<body>
<button onclick="addEventTest()">监听“返回”按键</button>
</body>
</html>
removeEventListener
移除按键事件监听器
plus.key.removeEventListener( event, listener );
说明:
从窗口移除指定的事件监听器。若没有查找到对应的事件监听器,则无任何作用。
参数:
- event:
(
KeyType
)
必选 要移除的事件类型
- listener:
(
KeyEventCallback
)
必选 要移除回调函数对象
返回值:
void : 无示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Key Example</title>
<script type="text/javascript">
function onback(){
alert( "BackButton Key pressed!" );
}
// 监听“返回”按钮事件
function addEventTest() {
plus.key.addEventListener("backbutton",onback);
}
// 取消监听“返回”按钮事件
function removeEventTest(){
plus.key.removeEventListener("backbutton",onback);
}
</script>
</head>
<body>
<button onclick="addEventTest()">监听“返回”按键</button>
<button onclick="removeEventTest()">取消监听“返回”按键</button>
</body>
</html>
KeyType
按键类型
常量:
- "backbutton": (String
类型
)设备“返回”按钮按键事件
如果需要改变默认“返回”按钮的处理逻辑,则可通过plus.key.addEventListener来注册监听"backbutton"事件。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑为退出应用。
- "keydown": (String
类型
)键按下事件
如果需要改变默认键按下的处理逻辑,则可通过plus.key.addEventListener来注册监听"keydown"事件。 可通过回调函数中KeyEvent对象的keyCode来获取按下的键值。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑由系统决定。
- "keyup": (String
类型
)键松开事件
如果需要改变默认键松开的处理逻辑,则可通过plus.key.addEventListener来注册监听"keyup"事件。 可通过回调函数中KeyEvent对象的keyCode来获取松开的键值。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑由系统决定。
- "longpressed": (String
类型
)长按键事件
如果需要改变默认长按键的处理逻辑,则可通过plus.key.addEventListener来注册监听"longpressed"事件。 长按键时会多次触发回调函数,通过回调函数中KeyEvent对象的keyCode来获取长按的键值。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑由系统决定。
- "menubutton": (String
类型
)设备“菜单”按钮按键事件
如果需要改变默认“菜单”按钮的处理逻辑,则可通过plus.key.addEventListener来注册监听"menubutton"事件。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑无操作。
- "searchbutton": (String
类型
)设备“搜索”按钮按键事件
如果需要改变默认“搜索”按钮的处理逻辑,则可通过plus.key.addEventListener来注册监听"searchbutton"事件。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑为打开系统搜索应用。
- "volumeupbutton": (String
类型
)设备“音量+”按钮按键事件
如果需要改变默认“音量+”按钮的处理逻辑,则可通过plus.key.addEventListener来注册监听"volumeupbutton"事件。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑为增加系统音量。
- "volumedownbutton": (String
类型
)设备“音量-”按钮按键事件
如果需要改变默认“音量-”按钮的处理逻辑,则可通过plus.key.addEventListener来注册监听"volumedownbutton"事件。
平台支持
- Android - 2.2+ (支持): 默认处理逻辑为减少系统音量。
KeyEvent
按键事件
属性:
keyCode
触发按键事件的键值
说明:
Number 类型
键值由各系统平台定义,一些特殊按键在不同的设备上可能存在差异。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Key Example</title>
<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
// 监听键按下事件
plus.key.addEventListener("keydown",function(e){
console.log("keydown: "+e.keyCode);
},false);
// 监听键松开事件
plus.key.addEventListener("keyup",function(e){
console.log("keyup: "+e.keyCode);
},false);
// 监听长按键事件
plus.key.addEventListener("longpressed",function(e){
console.log("longpressed: "+e.keyCode);
},false);
}
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
</script>
</head>
<body>
监听键事件<br/>
</body>
</html>
keyType
按键事件类型
说明:
KeyType 类型
用于表明触发此按键事件的类型,值为KeyType中定义的值。
KeyEventCallback
按键事件的回调函数
void onKeyEvent( KeyEvent event ){
// Event handled code.
var key=event.keyCode; // 用户按键的键值
}
参数:
- event:
(
KeyEvent
)
必选 监听用户按键操作返回的数据
可通过event的keyCode属性(String类型)获取用户按键的类型,参考KeyType类型。