2012-08-03 18 views
10

पर बटन वापस संभाल करने Sencha स्पर्श में अगर मैं नेविगेशन दृश्य का उपयोग वापस बटन मिलता है मैं कर सकते हैं। यह बहुत बढ़िया है।

लेकिन क्या उपयोगकर्ता डिवाइस backbutton मारा तो क्या होगा? यह सीधे applicaiton से बाहर है। मेरी आवश्यकता में इसे पिछले स्क्रीन पर वापस जाने के लिए आवेदन से बाहर नहीं निकलना चाहिए। मैं यह कैसे कर सकता हूं?
कैसे डिवाइस Sencha स्पर्श आवेदन

+0

इस एक ही समस्या का सामना करना पड़ मैं भी कर रहा हूँ है। चूंकि सभी ऐप एकल (आवश्यक नहीं) एचटीएमएल फ़ाइल द्वारा संचालित होते हैं, वहां पहले से देखे गए पृष्ठों का कोई इतिहास नहीं होता है और ऐप बैक कुंजी पर बंद हो जाता है। यदि आप उपयोग कर रहे हैं तो फोनगैप से एक तरीका हो सकता है। – SachinGutte

+0

कृपया अपना कोड दिखाएं। – hekomobile

+0

इसका एक आवेदक यहां पेस्ट करने के लिए एक फ़ाइल नहीं है। सभी फाइल सिस्टम और फाइलों के बहुत सारे हैं – atluriajith

उत्तर

8

आप इस तरह हार्डवेयर वापस बटन संभाल कर सकते हैं:

if (Ext.os.is('Android')) { 
    document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false); 

    function onBackKeyDown(eve) { 

     eve.preventDefault(); 

     //do something 
     alert('back button pressed'); 

    } 
} 
+0

मुझे किस वर्ग या जेएस फ़ाइल में यह लागू करना चाहिए? –

6

मैं इतिहास सहायता पृष्ठ पर निर्देश प्राप्त नहीं किया है कि जब यह करने के लिए कोशिश कर रहा उपयोगी; नेविगेशन व्यू से निपटने के दौरान मार्गों का उपयोग करने के लिए मैं वैसे भी नहीं देख पा रहा था, जिस पर किसी भी समय विचारों का एक बड़ा ढेर हो सकता है।

तुम सिर्फ वापस बटन हालांकि काम करना चाहते हैं, तो आप popstate और pushstate कार्य (एक संदर्भ के लिए https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history देखें) का उपयोग कर सकते हैं। विचार जब एक को हटाने है कि आप push एक राज्य जब एक दृश्य और यह pop बंद जोड़ने है। डेस्कटॉप ब्राउज़र पर एक Android फ़ोन पर भौतिक वापस बटन, या वापस बटन को प्रभावी ढंग से history.back() कॉल; तो तुम सब करने की जरूरत है सुनिश्चित करें कि पट्टी में वापस बटन दबाने ही करता है, और यह जो पॉप नव दृश्य से चलाता है।

यह Sencha टच में काम उपयोग करने के लिए, मैं मुख्य नियंत्रक को निम्नलिखित जोड़ें:

refs मैं (Ext.navigation.View का एक उदाहरण) main देखने के लिए सन्दर्भ और इसके शीर्षक पट्टी करने के लिए है, में जो आप कर सकते हैं से वापस बटन जैसे की घटना पर हुक:

refs: { 
     main: 'mainview', 
     mainTitleBar: 'mainview titlebar', 
}... 

मैं control config वस्तु के माध्यम से निम्नलिखित कार्यों देते हैं ..

control: { 
     main: { 
      push: 'onMainPush' 
     }, 
     mainTitleBar: { 
      back: 'onBack' 
     }, 
     ... 

इन के रूप में परिभाषित कर रहे हैं:

onMainPush: function(view, item) { 
     //do what ever logic you need then.. 
     history.pushState(); 
    }, 
    onBack: function() { 
     history.back(); //will cause the onpopstate event to fire on window.. 
     //prevent back button popping main view directly.. 
     return false; 
    }, 

मैं तो निष्पादित करने के लिए जब राज्य की init समारोह के माध्यम से पॉप है एक समारोह देते हैं ..

init: function() { 
    /* pop a view when the back button is pressed 
     note: if it's already at the root it's a noop */ 
    var that = this; 
    window.addEventListener('popstate', function() { 
     that.getMain().pop(); 
    }, false); 
}, 

अब, पट्टी में वापस दबाने, कार्यान्वित history.back() , यह बदले में popstate ईवेंट चलाता है जो तब मुख्य दृश्य को पॉप करने का कारण बनता है।

यदि आप इसे वास्तविक एप्लिकेशन पर काम करना चाहते हैं, तो इस तकनीक का उपयोग github here पर एक तकनीक (v। मूल!) संपत्ति खोजक ऐप है।

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