PhoneGap eventupupout and volumedownbutton function not working

I am using PhoneGap Api 1.4.1, and also I tried with 1.5.0, The VolumeGroup Eventup and volumedownbutton does not work, neither it works on an Android device, nor does it work on an emulator. When the volume button is up or down, press to display a warning, see code:

<!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> 
+6
source share
1 answer

You can do the following to get the volume button with 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; } 

I copied this code from the cordova error report. This code is valid for cordova 2.0. I lost weight, you have to change "cordova.fireDocumentEvent" to "phonegap.fireDocument" or "PhoneGap.fireDocumentEvent"

update: Just wrote a small blog post about the error that was resolved using the code above. Link to Cordoba-Problem-Tracker can be found in this post: http://christian-kuetbach.de/blog/post/13

update 2: The problem seems to be fixed inside cordova 1.9: https://issues.apache.org/jira/browse/CB-871

Hope this helps.

+8
source

Source: https://habr.com/ru/post/911099/


All Articles