2013-10-29 6 views
9

आईओएस 7 सफारी में पीछे/आगे नेविगेट करने के दो तरीके हैं - नीचे के पारंपरिक बैक/फॉरवर्ड बटन तीरों का उपयोग करके या स्क्रीन के किनारे से स्वाइप करके। मैं अपने AJAX ऐप में पृष्ठों के बीच संक्रमण के लिए एक एनीमेशन का उपयोग कर रहा हूं, लेकिन अगर मैं किनारे के स्वाइप के माध्यम से नेविगेट कर रहा हूं, तो मैं उस संक्रमण को आग नहीं करना चाहता, क्योंकि यह एक एनीमेशन है।आईओएस 7 सफारी में, आप किनारे स्वाइप बनाम बैक/एफडब्ल्यूडी बटन के माध्यम से पॉपस्टेट घटनाओं को कैसे अलग करते हैं?

हालांकि, पॉपस्टेट ईवेंट ऑब्जेक्ट्स दोनों प्रकार के नेविगेशन के लिए समान दिखते हैं - क्या इन दो प्रकार के उपयोगकर्ता नेविगेशन के बीच अंतर करने का कोई तरीका है ताकि हम तदनुसार जवाब दे सकें?

अद्यतन: मैं किनारे स्वाइप बनाम बैक बटन टैप का सही ढंग से पता लगाने के लिए आईओएस 7 सफारी में एक बग (जो प्रतीत होता है) का उपयोग करने में सक्षम था। बग यह है कि किनारे स्वाइप (लेकिन टचस्टार्ट और टचमॉव हैं) का उपयोग करते समय टचेंड इवेंट ट्रिगर नहीं किया जाता है (अगले स्पर्श ईवेंट तक)। इसलिए मैंने को ध्वज को ध्वजांकित करना चाहिए और इसे टचमोव पर अक्षम कर दिया है - फिर यदि ध्वज अक्षम है और पॉपस्टेट होता है, तो मुझे पता है कि यह एक किनारे स्वाइप है।

यह सही 99% समय है - एकमात्र समय जहां यह संभवतः असफल हो सकता है, जब कोई उपयोगकर्ता आंशिक रूप से आंशिक रूप से स्वाइप करता है और फिर जाता है और वर्तमान पृष्ठ को वापस स्थानांतरित करने देता है (जिस बिंदु पर मेरा ध्वज होगा अभी भी अक्षम हो) और फिर बैक बटन टैप करें (जो कोई टच ईवेंट नहीं चलाता है)। उस अंतिम [किनारे] मामले को संभालने के लिए मैंने 50ms के बाद ध्वज को फिर से सक्षम करने के लिए टचमोव पर टाइमर सेट किया।

हां यह "गंदे" है, लेकिन अब यह मुझे लगभग हर मामले में जो चाहता है उसे प्राप्त करता है, इसलिए जब तक ऐप्पल बग को ठीक नहीं करता, तब तक मैं ठीक हूं, लेकिन उम्मीद है कि वे पॉपस्टेट ईवेंट में एक संकेतक भी प्रदान करेंगे ऑब्जेक्ट जो हमें बताता है कि यह किस प्रकार की नेविगेशन है।

+1

हाय, क्या आप अपने समाधान के लिए कोड स्निपेट प्रदान कर सकते हैं? धन्यवाद;) –

+0

हां, कृपया एक कोड स्निपेट प्रदान करें क्योंकि मैं यहां एक समाधान की तलाश में आया था। :) –

+1

मैं पुष्टि कर सकता हूं कि यह बग आईओएस 9.3.2 में तय है। – Rockallite

उत्तर

1

संक्षिप्त और दुखद उत्तर: नहीं। यह पिछला/आगे-स्वाइप वास्तविक पृष्ठ पर प्रचारित नहीं है लेकिन ओएस-स्तर पर होता है।

+1

मुझे पता चला है कि टचस्टार्ट और टचमोव घटनाओं को किनारे नेविगेशन स्वाइप के दौरान निकाल दिया जाता है (विचित्र रूप से टचेंड ईवेंट को आपकी अंगुली को हटाते समय निकाल दिया नहीं जाता है, भले ही आपने वर्तमान दृश्य को वापस स्थानांतरित करके नेविगेशन रद्द कर दिया हो - मैंने ऐप्पल को यह बग रिपोर्ट किया है)। मैं इस जानकारी का उपयोग कर वास्तव में हैकी समाधान ले सकता हूं, लेकिन यह मूर्खतापूर्ण नहीं होगा। –

+0

हाँ, यह बहुत हैकी और गंदा हो जाएगा। सबसे अधिक संभावना है कि आप अन्य कार्रवाइयों में भी भाग लेंगे जिनमें समान घटनाएं होंगी। मेरे ज्ञान के लिए यह आईओएस 7 के प्रारंभिक बीटा के बाद से दो बार बग के रूप में भरा गया है। आइए आशा करते हैं कि ऐप्पल भविष्य में कम से कम कुछ कस्टम इवेंट-गुण प्रदान करता है। –

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