Javascript PhoneGap事件volumeupbutton和volumedownbutton不工作
我使用的是PhoneGap Api 1.4.1,也尝试了1.5.0,PhoneGap事件volumeupbutton和volumedownbutton不起作用,在android设备上也不起作用,在emulator上也不起作用。当按下音量按钮up或down时,它必须显示警报,请参见代码:Javascript PhoneGap事件volumeupbutton和volumedownbutton不工作,javascript,android,cordova,phonegap-plugins,Javascript,Android,Cordova,Phonegap Plugins,我使用的是PhoneGap Api 1.4.1,也尝试了1.5.0,PhoneGap事件volumeupbutton和volumedownbutton不起作用,在android设备上也不起作用,在emulator上也不起作用。当按下音量按钮up或down时,它必须显示警报,请参见代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/str
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>PhoneGap Volume Down Button Example</title>
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">
// Call onDeviceReady when PhoneGap is loaded.
//
// At this point, the document has loaded but phonegap.js has not.
// When PhoneGap is loaded and talking with the native device,
// it will call the event `deviceready`.
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// PhoneGap is loaded and it is now safe to make calls PhoneGap methods
//
function onDeviceReady() {
// Register the event listener
document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);
document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
}
// Handle the volume down button
//
function onVolumeDownKeyDown() {
alert("Down");
}
function onVolumeUpKeyDown() {
alert("Up");
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>
PhoneGap音量下降按钮示例
//加载PhoneGap时调用onDeviceReady。
//
//此时,文档已加载,但phonegap.js尚未加载。
//加载PhoneGap并与本机设备通话时,
//它将调用事件“DeviceRady”。
//
函数onLoad(){
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
//PhoneGap已加载,现在可以安全地调用PhoneGap方法
//
函数ondevicerady(){
//注册事件侦听器
document.addEventListener(“volumedownbutton”,On VolumeDownKeyDown,false);
文件。添加的文件列表(“volumeupbutton”,onVolumeUpKeyDown,false);
}
//处理音量下降按钮
//
函数onVolumeDownKeyDown(){
警惕(“下降”);
}
函数onVolumeUpKeyDown(){
警惕(“向上”);
}
要在android上运行音量按钮,您可以执行以下操作:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//If volumedown key
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
this.loadUrl("javascript:cordova.fireDocumentEvent('volumedownbutton');");
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
this.loadUrl("javascript:cordova.fireDocumentEvent('volumeupbutton');");
return true;
} else {
//return super.onKeyDown(keyCode, event);
}
//return super.onKeyDown(keyCode, event);
return true;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
LOG.d(TAG, "KeyUp has been triggered on the view" + keyCode);
// If back key
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.loadUrl("javascript:cordova.fireDocumentEvent('backbutton');");
return true;
}
// Legacy
else if (keyCode == KeyEvent.KEYCODE_MENU) {
this.loadUrl("javascript:cordova.fireDocumentEvent('menubutton');");
return true;
}
// If search key
else if (keyCode == KeyEvent.KEYCODE_SEARCH) {
this.loadUrl("javascript:cordova.fireDocumentEvent('searchbutton');");
return true;
}
return false;
}
我从cordova bug报告中复制了这段代码。此代码对cordova 2.0有效。我想您必须将“cordova.fireDocumentEvent”更改为“phonegap.fireDocument”或“phonegap.fireDocumentEvent”
更新:
刚刚写了一篇关于这个bug的小博文,上面的代码解决了这个问题。可在该帖子中找到Cordova问题跟踪程序的链接:
更新2:
该问题似乎在cordova 1.9中得到了解决:
希望这能有所帮助。我也在iphone上试用过,但它也不起作用:(Iphone和Android不支持错误的问题:P什么是错误的问题?如果您觉得您的问题不必要,您可以自由删除您的问题或自己回答。您可以提供电话间隙插件吗?我需要cordova-1.8.1.js我想这一个也会更容易,如果您覆盖您的本地入口点(继承自DroidGap的类)并将其传递到那里。我想我会在cordova-project中提交一份错误报告。坦率地说,我仍然不知道java代码我是一名学习者,请帮助meSolution 1:phonegap 1.9解决方案2的更新:(如果不使用phonegap构建)打开您唯一的*.java文件并将代码添加到该文件的上面。(搜索最后一个}并将其添加到前面)。