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()
. 이렇게하면 사용자가 앱을 전환하기 전에 표시했던 모든보기를 다시로드 할 수 있습니다. 사용자가 앱에서 멀어 질 때 코드를 실행할 수 있는 pagehide
및 pageshow
이벤트 가 있습니다. 로컬 상태를 localStorage 및 / 또는 IndexedDB에 저장 한 다음 웹앱이 다시 열릴 때 해당 데이터를 다시 가져올 수 있습니다.
업데이트 : 이 답변이 반대표를 받고 있으므로이 설명을 추가했습니다.
문제는 실제 재로드가 아닐 수도 있지만, Mobile Safari는 웹 앱이 홈 화면에 웹 앱으로 '설치'된 경우와 브라우저를 통해 열릴 때 사용자의 캐시와 쿠키를 다르게 취급한다는 사실입니다. localStorage를 사용하는 여기에서 제안 된 솔루션이 작동하지만 서버가 이미 사용자의 세션 상태를 유지하는 데 책임이있는 경우 피할 수있는 클라이언트 측 논리에 대한 많은 작업입니다. 30 초 해결책은 세션 쿠키가 더 긴 수명을 갖도록 명시 적으로 설정하는 것입니다.
이를 통해 기기 재부팅 사이에도 상태를 그대로 유지할 수 있으므로 홈 화면에서 시작할 때 웹 앱이 다시로드되는 것을 기술적으로 중지하지 않더라도 사용자가없는 사용자의 상태를 쉽게 복원 할 수 있습니다. 그녀는 재 장전을 알아 차 렸습니다. 많은 경우에 이것이 진짜 문제라고 생각합니다.
이 전략과 코드 예제에 대한보다 자세한 토론을 보려면 다음 질문과 내 답변을 살펴보십시오.
'Programing' 카테고리의 다른 글
통합 테스트는 외부 API와 상호 작용하기 위해 어떻게 작성 되나요? (0) | 2020.11.06 |
---|---|
150 개 이상의 Instagram 댓글 검색 (0) | 2020.11.06 |
컴파일 타임 정보를 Template Haskell 함수에 올바르게 전달하는 방법은 무엇입니까? (0) | 2020.11.06 |
자바 스크립트 라이브러리에 대한 GPL 제한 (0) | 2020.11.06 |
R에서 캐싱 / 메모 화 / 해싱 옵션 (0) | 2020.11.06 |