2012-08-08 13 views
5

आग नहीं होगी मैं विंडोज फोन 7 के लिए एक फोनगैप ऐप बनाने का प्रयास कर रहा हूं। मैं "बैकबटन" ईवेंट (http://docs.phonegap.com/en/) के लिए प्रलेखन का पालन करने का प्रयास कर रहा हूं। 2.0.0/cordova_events_events.md.html # बैकबटन), लेकिन मुझे यह काम करने के लिए प्रतीत नहीं होता है।"बैकबटन" घटना

"डिवाइस से पहले" घटना आग लगती है, लेकिन "बैकबटन" घटना नहीं होती है। विजुअल स्टूडियो विंडोज फोन एमुलेटर में संकलन और चलते समय ऑनडिवाइस रीडी फ़ंक्शन को कॉल किया जाता है और "डिवाइस तैयार" लॉग होता है, लेकिन जब एमुलेटर बैक बटन दबाया जाता है तो एप्लिकेशन बाहर निकलता है और कंसोल में कुछ भी लॉग नहीं होता है। जब बैक बटन दबाया जाता है तो ऑनबैककेडाउन फ़ंक्शन चलाना चाहिए।

सरकारी दस्तावेज़ से कोड की नकल:

<html> 
    <head>  
     <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script> 
     <script type="text/javascript"> 
      function onLoad() { 
       document.addEventListener("deviceready", onDeviceReady, false); 
      } 
      function onDeviceReady() { 
       console.log("Device ready"); 
       document.addEventListener("backbutton", onBackKeyDown, false); 
      } 
      function onBackKeyDown() { 
       console.log("Back button pressed"); 
      } 
     </script> 
    </head> 
    <body onload="onLoad()"> 
     <div></div> 
    </body> 
</html> 
+3

[एसएससीसीई] (http://robzu.com/sscce-short-self-contained-correct-compilable-example/) – RobB

+1

मैं इस समस्या को 2.0.0 से प्रोजेक्ट टेम्पलेट का उपयोग करके भौतिक डिवाइस पर पुन: पेश कर सकता हूं। WP 7.5 (7.10.8773.98) के साथ नोकिया लुमिया 800। मेरा सुझाव है कि आप एक बग रिपोर्ट भरें और यहां लिंक पोस्ट करें। https://issues.apache.org/jira/secure/Dashboard.jspa – Loda

+0

मैंने एक बग रिपोर्ट https://issues.apache.org/jira/browse/CB-1218 भर दी। इसके लिए वोट दें !! – Loda

उत्तर

2

ठीक यहाँ किया गया है: https://github.com/purplecabbage/incubator-cordova-wp7/commit/d04b87abb3c3822ef25438e1353a1d7d2e0d6628

आप 2.1.0 के लिए प्रतीक्षा करने के लिए अगले सप्ताह के शुरू जारी होने की, या की आवश्यकता होगी इस बीच, स्रोत-कोड से अपना ऐप बनाएं।

3

मैंने कॉर्डोवा-1.8.1.जेएस के कुछ हिस्सों को कॉर्डोवा-2.0.0.जेएस में कॉपी करके इसे ठीक करने में कामयाब रहे।

1.8.1 में, var NamedArgs के लिए खोजें और संपूर्ण ऑब्जेक्ट को 2.0.0 पर कॉपी करें।

2.0.0 में, के लिए खोज: var command = service + "/" + action + "/" + callbackId + "/" + JSON.stringify(args); और साथ बदलें:

if (action == 'overridebackbutton') { 
    if (NamedArgs[service] && NamedArgs[service][action]) { 
     var argNames = NamedArgs[service][action]; 
     var newArgs = {}; 
     var len = Math.min(args.length,argNames.length); 

     for(var n = 0; n < len; n++) { 
      newArgs[argNames[n]] = args[n]; 
     } 

     args = newArgs; 
    } 
    else if(args && args.length && args.length == 1) { 
     args = args[0]; 
    } 
} 
var command = service + "/" + action + "/" + callbackId + "/" + JSON.stringify(args); 

यह एक सुंदर समाधान नहीं हो सकता है, लेकिन यह मेरे लिए काम करता है।

+0

उपर्युक्त कोड का उपयोग करके, आप निम्न कथन का उपयोग कर डिफ़ॉल्ट बैक बटन व्यवहार (निकास ऐप) को सक्षम/अक्षम कर सकते हैं: कॉर्डोवा.एक्सैक (शून्य, शून्य, "कोरइवेंट्स", "ओवरराइडबैकबटन", [सत्य]); या कॉर्डोवा.एक्सैक (शून्य, शून्य, "कोरइवेंट्स", "ओवरराइडबैकबटन", [झूठी]); – opznhaarlems

संबंधित मुद्दे