7

작년 웹킷 removed the 350ms delay for iOS. Safari의 모바일 브라우저에서 웹 사이트를 실행할 때 지연이 더 이상 존재하지 않으며 예상대로 작동합니다.iOS 독립형 앱 300ms 클릭 지연

그러나 웹 응용 프로그램을 standalone mode에서 실행하면 지연이 발생하며 뻔뻔 스럽습니다. 정렬의

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

내가 해봤 변화, 운이없는 :

여기 내가 사용 내 메타 태그입니다.

이 명백한 문제는 없지만 독립 실행 형 응용 프로그램에 관해서는 찾기가 어렵습니다.

이 350ms 지연 클릭이 독립 실행 형 모드에서만 발생하는 이유를 아는 사람이 있습니까? 이 문제를 해결하려면 fastclick을 프로젝트에 가져와야하는데, 이상적이지 않습니다.

참고 : 나는 아이폰 OS를 9.3.5/아이폰을 실행 해요 6

+1

이 문제는 아이폰 OS (11) 독립형 웹 응용 프로그램에서 지금 해결 될 것으로 보인다 작동 할 수있는 경우

는 해결 방법으로 시도 할 수 있습니다. https://forums.developer.apple.com/thread/43415 – user2309038

답변

9

는 네이티브 해결 방법은없는 것 같다,이 관계없이 being fixed in webkit.의 알려진 문제가 될

호언 장담을 시작 나타납니다

사과가 부족하고 독립 실행 형 응용 프로그램에 대한 세부 사항에 대한 관심은 정말 믿을 수 없습니다. 특히 버전 9.3.5부터.

이 문제와 독립 실행 형 응용 프로그램의 주요 메시지는 Youtube player issue 사이입니다. 아마도 애플은 헤드폰 잭을 제거하고 약간의 신비 "터치 줄을 추가하는 방법에 대한 걱정을 중지해야하며, 실제로 빌어 먹을 플랫폼을 수정.

끝 호언 장담

당신은 문제를 해결하기 위해 FastClick을 사용해야합니다

을. 적용 iOS에만 해당됩니다. 앱이 독립형이 아닌 경우 잘 작동하므로 독립형 앱에만 추가로 적용 할 수 있습니다.

내 스크립트 태그가 DOM 다음에 위치하며 초기화가 다음과 같이 보입니다. :

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이 경우