7

पिछले साल वेबकिट removed the 350ms delay for iOS पर क्लिक करें। जब मैं सफारी के मोबाइल ब्राउज़र में अपनी वेबसाइट चलाता हूं, तो देरी अब मौजूद नहीं होती है, और उम्मीद के अनुसार काम करता है।आईओएस स्टैंडअलोन ऐप 300ms विलंब

हालांकि, जब मैं standalone mode में अपने वेब एप्लिकेशन को चलाने के लिए, विलंब मौजूद है, और तो एकदम स्पष्ट है। एक तरह से

<meta name="viewport" content="initial-scale=1.0, user-scalable=no, maximum-scale=1, width=device-width"> 

मैं कोशिश की है विविधताओं, भाग्य के बिना:

यहाँ मेरी मेटाटैग है कि मैं का उपयोग कर रहा है।

यह स्टैंडअलोन एप्लिकेशन, कोई-कम यह स्पष्ट मुद्दे के बारे में कुछ भी खोजने के लिए मुश्किल है।

क्या किसी को पता है कि यह 350 एमएमएस देरी क्लिक केवल स्टैंडअलोन मोड में क्यों होता है? एक कामकाज के रूप में, मुझे परियोजना में fastclick लाने की ज़रूरत है, जो आदर्श नहीं है।

नोट: मैं आईओएस चल रहा हूँ 9.3.5/iPhone के 6

+1

यह समस्या आईओएस 11 स्टैंडअलोन वेब एप्लिकेशन में अब तय किया जा रहा है के लिए काम कर सकते हैं की कोशिश कर सकते हैं। यह भी देखें: https://forums.developer.apple.com/thread/43415 – user2309038

उत्तर

9

कोई मूल वैकल्पिक हल होने के लिए वहाँ लगता है, और यह एक ज्ञात समस्या प्रतीत होता है, being fixed in webkit. की परवाह किए बिना

शुरू शेख़ी

एप्पल समर्थन की कमी, और स्टैंडअलोन ऐप्स के लिए विस्तार पर ध्यान वास्तव में अविश्वसनीय है; खासकर संस्करण 9.3.5 के रूप में।

इस समस्या के बीच, और स्टैंडअलोन ऐप्स पर प्रमुख Youtube player issue। शायद एप्पल हेडफोन जैक को दूर करने, और कुछ रहस्यमय "टच बार जोड़ने के बारे में चिंता करना बंद करना चाहिए, और वास्तव में अपने लानत मंच को ठीक।

अंत शेख़ी

आप इस मुद्दे को हल करने के लिए FastClick का उपयोग करना होगा। लागू करें यह केवल आईओएस के लिए है। आप आगे जा सकते हैं, और इसे केवल स्टैंडअलोन ऐप्स पर लागू कर सकते हैं, क्योंकि यह ऐप स्टैंडअलोन में नहीं है, तो यह ठीक काम करता है।

मेरा स्क्रिप्ट टैग डोम के बाद रखा गया है, और प्रारंभिकरण इस तरह दिखता है :

if (isIos() && isRunningStandalone()) { 
     // Initialize Fast Click 
     // Even with the latest webkit updates, unfortunatley iOS standalone apps still have the 350ms click delay, 
     // so we need to bring in fastclick to alleviate this. 
     // See https://stackoverflow.com/questions/39951945/ios-standalone-app-300ms-click-delay 
     if ('addEventListener' in document) { 
      document.addEventListener('DOMContentLoaded', function() { 
       FastClick.attach(document.body); 
      }, false); 
     } 
    } 

    isIos = function() { 
     // Reference: https://stackoverflow.com/questions/9038625/detect-if-device-is-ios#answer-9039885 
     return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 
    }; 

    isRunningStandalone = function() { 
     // Bullet proof way to check if iOS standalone 
     var isRunningiOSStandalone = window.navigator.standalone; 

     // Reliable way (in newer browsers) to check if Android standalone. 
     // https://stackoverflow.com/questions/21125337/how-to-detect-if-web-app-running-standalone-on-chrome-mobile#answer-34516083 
     var isRunningAndroidStandalone = window.matchMedia('(display-mode: standalone)').matches; 

     return isRunningiOSStandalone || isRunningAndroidStandalone; 
    }; 
+1

इस हालिया उत्तर के लिए धन्यवाद। मुझे विश्वास नहीं है कि यह अभी भी 2017 में एक बात है! किसी भी ने ऐप्पल के "स्क्रॉल डाउन टू टैप" फीचर का इस्तेमाल कभी भी नहीं किया ... – JoLoCo

0

एक अलग ब्राउज़र उदाहरण चलाने के लिए प्रतीत होता है जब आप इसे स्टैंडअलोन में चलाते हैं, शायद एक पुराना संस्करण। ज्ञात नहीं है और न ही अपेक्षित तारीख या तो मुझे डर है।

समाधान के लिए, आप अगर ontouchend अपने मामले