2012-03-19 8 views
6

काम कर रहा है नहीं मैं PhoneGap एपीआई 1.4.1 का उपयोग कर रहा है और यह भी मैं, PhoneGap घटना volumeupbutton और volumedownbutton काम नहीं कर रहा 1.5.0 के साथ करने की कोशिश की, न तो यह Android डिवाइस पर काम करता है और न ही यह एमुलेटर पर काम करता है। जब वॉल्यूम बटन ऊपर या नीचे दबाया जाता है यह प्रदर्शित करना चाहिए चेतावनी कोड देखें:PhoneGap घटना volumeupbutton और volumedownbutton

<!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> 
+0

मैं भी iphone यह रूप में अच्छी तरह उस पर काम नहीं कर रहा :( – AsadYarKhan

+0

गलत प्रश्न iPhone और Android इन समर्थित नहीं है में इस की कोशिश की: पी – AsadYarKhan

+0

क्या एक गलत सवाल है यदि आप अपने आप को अपने प्रश्न हटा सकते हैं या यह जवाब देने के लिए स्वतंत्र हैं महसूस करें कि आपका प्रश्न अनावश्यक है। –

उत्तर

8

आप निम्नलिखित कर सकते हैं एंड्रॉयड के साथ चल रहा वॉल्यूम बटन पाने के लिए:

@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; 
} 

मैं इस की नकल की कॉर्डोवा बग रिपोर्ट से कोड। यह कोड कॉर्डोवा 2.0 के लिए मान्य है। मैं पतली आप "cordova.fireDocumentEvent" से "phonegap.fireDocument" या "PhoneGap.fireDocumentEvent" बदलना होगा

अद्यतन: बस, बग के बारे में एक छोटे से ब्लॉग पोस्ट ने लिखा है कि द्वारा हल किया गया था उपरोक्त कोड Cordova-अंक-ट्रैकर के लिए लिंक है कि पोस्ट में पाया जा सकता है: http://christian-kuetbach.de/blog/post/13

अद्यतन 2: अंक कॉर्डोबा 1.9 के भीतर निर्धारित किया जा रहा है: https://issues.apache.org/jira/browse/CB-871

आशा इस मदद करता है।

+0

क्या आप इसे फोन अंतराल प्लगइन के रूप में प्रदान कर सकते हैं –

+0

मेरे पास कॉर्डोवा-1.8.1.जेएस है, मुझे इसकी आवश्यकता है –

+0

मुझे लगता है कि यह आसान होगा, अगर आप अपने मूल प्रविष्टि-बिंदु (कक्षा को ओवरराइट करते हैं , जो DroidGap से विरासत में आता है) और बस इसे वहां पथित करें। मुझे लगता है कि मैं कॉर्डोवा-प्रोजेक्ट में एक बग रिपोर्ट दर्ज करूंगा। –