Programing

iPhone 홈 화면에서 실행 한 웹 앱 다시로드 중지

lottogame 2020. 11. 6. 07:48
반응형

iPhone 홈 화면에서 실행 한 웹 앱 다시로드 중지


웹 앱을 만들고 내 iPhone 홈 화면에 추가했습니다. 다른 앱으로 전환했다가 다시 돌아 오면 iPhone이 자동으로 웹 앱을 다시로드합니다. 이로 인해 앱 흐름이 중단됩니다.

iPhone이 앱을 다시로드하지 못하도록하려면 어떻게합니까?

Apple-mobile-web-app-capable 메타 태그를 활성화하여 Safari 도구 모음을 숨기고 끄고 싶지 않습니다.


나는 방금이 관련 질문을 찾았 습니다 .iOS에서 열 때 네이티브 웹 앱이 다시로드되지 않도록하십시오 .

Safari의 한계 인 것처럼 보이므로 제안 된 솔루션은 Javascript 및 HTML5 localStorage를 사용하여 웹 앱 상태를 유지하는 것입니다. 웹앱이 시작되면 지속 된 상태를 확인하고 가능한 경우로드합니다.

Safari에서 localStorage를 사용하는 방법은 http://developer.apple.com/library/safari/#documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007256-CH1 에서 읽을 수 있습니다. -SW1

도움이되기를 바랍니다. 당신과 같은 문제가 있었기 때문에 적어도 그것은 나를 위해 그랬습니다. :-)


해킹을 발견하고 iOS 11.4.1/12.0
파일 업로드 창 열기 에서 테스트 한 다음 홈 화면으로 다시 전환합니다.
앱은 계속 작동합니다. 제 경우에는 오디오가 재생되고 localStorage업데이트 중입니다.

증명 : https://youtu.be/heehLUhGKYY

추신. 우리가 찾을 때 노래 진행 상황이 어떻게 변하는 지 주목하십시오. 앱이 백그라운드에서 작동한다는 것을 증명


짧은 대답은 당신이 이것을 통제 할 수 없다는 것입니다. 때로는 iOS가 백그라운드에서 웹 앱을 활성 상태로 유지하고, 다른 경우에는이를 종료합니다. 기기에서 사용 가능한 메모리 양과 전적으로 관련이 있습니다.

따라서 가장 좋은 방법은이 재로드로 인해 발생하는 문제를 최소화하는 것입니다. 을 변경 location.hash하거나 사용하여 보기간에 이동할 때 웹앱이 URL을 업데이트하는지 확인합니다 history.pushState(). 이렇게하면 사용자가 앱을 전환하기 전에 표시했던 모든보기를 다시로드 할 수 있습니다. 사용자가 앱에서 멀어 질 때 코드를 실행할 수 있는 pagehidepageshow이벤트 가 있습니다. 로컬 상태를 localStorage 및 / 또는 IndexedDB에 저장 한 다음 웹앱이 다시 열릴 때 해당 데이터를 다시 가져올 수 있습니다.


업데이트 : 이 답변이 반대표를 받고 있으므로이 설명을 추가했습니다.

문제는 실제 재로드가 아닐 수도 있지만, Mobile Safari는 웹 앱이 홈 화면에 웹 앱으로 '설치'된 경우와 브라우저를 통해 열릴 때 사용자의 캐시와 쿠키를 다르게 취급한다는 사실입니다. localStorage를 사용하는 여기에서 제안 된 솔루션이 작동하지만 서버가 이미 사용자의 세션 상태를 유지하는 데 책임이있는 경우 피할 수있는 클라이언트 측 논리에 대한 많은 작업입니다. 30 초 해결책은 세션 쿠키가 더 긴 수명을 갖도록 명시 적으로 설정하는 것입니다.

이를 통해 기기 재부팅 사이에도 상태를 그대로 유지할 수 있으므로 홈 화면에서 시작할 때 웹 앱이 다시로드되는 것을 기술적으로 중지하지 않더라도 사용자가없는 사용자의 상태를 쉽게 복원 할 수 있습니다. 그녀는 재 장전을 알아 차 렸습니다. 많은 경우에 이것이 진짜 문제라고 생각합니다.


이 전략과 코드 예제에 대한보다 자세한 토론을 보려면 다음 질문과 내 답변을 살펴보십시오.

참고 URL : https://stackoverflow.com/questions/6930771/stop-reloading-of-web-app-launched-from-iphone-home-screen

반응형