2011-07-20 7 views
6

Mam aplikację internetową działającą na iPadzie. Działa w trybie pełnoekranowym. Jeśli zadanie zostanie przełączone na inną aplikację (dwukrotne kliknięcie przycisku home itd.), Przełącz się ponownie na moją aplikację internetową, a następnie ponownie uruchomię aplikację internetową.Zapobiegaj ponownemu uruchamianiu aplikacji internetowej na przełączniku zadania na iPadzie

Czy istnieje sposób, aby uniemożliwić ponowne uruchomienie aplikacji internetowej po otrzymaniu fokusu po przełączeniu zadań na iPada? Oczywiście chcę po prostu pokazać się dokładnie w takim stanie, w jakim się znajdowała, kiedy stracił ostrość.

Dzięki.

+0

sprawdzić ustawienia Info.plist: Jest kluczowym „Aplikacja nie uruchom w tle "spróbuj ustawić tę wartość na NIE (lub odznacz ją) – Hariprasad

+0

@Hariprasad - Cześć - to nie jest aplikacja XCode, jest to aplikacja internetowa (HTML, JavaScript, CSS). Czy mam rację sądząc, że info.plist dotyczy XCode, a nie aplikacji internetowych? Dzięki. – Journeyman

+0

OK masz rację. Czy ta aplikacja internetowa działa w przeglądarce? lub działa tak, jak inne natywne aplikacje. nie mają pomysłu na aplikacje internetowe. – Hariprasad

Odpowiedz

2

Nie, nie jest to możliwe.

Najlepszym sposobem działania jest zapisanie stanu w localStorage. Jeśli używasz np. Skrót adresu URL do śledzenia twojego stanu (np. MyApp.html/# loginScreen), można zapisać te informacje, a następnie zastosować je na location.hash, które wyeksportują window.onhashchange.

Innymi słowy (kody są tylko przykładem napisane na bieżąco):

1 - przechowywać istotne informacje do localStorage:

localStorage.setItem("state", "loginScreen"); 

2 - odzyskać wartość na uruchomienie i stosowanie go do mieszania:

location.hash = (localStorage.getItem("state")) ? localStorage.getItem("state") : ""; 

3 - wiążą słuchacza zdarzenia do onhashchange i stamtąd kontynuować:

window.addEventListener("hashchange", function() { 
    if (location.hash.length) { 
     alert("Current state of UI is :"+ location.hash); 
    } 
}, false); 
-1

To co najmniej w przypadku iOS 4.2.1, 5.1.1, 6.0 i 6.1 wydaje się to możliwe; Myślę, że odpowiedź na to pytanie jest błędna.

Sztuką jest, aby to zrobić:

// Start or resume session 
session_start(); 

// Extend cookie life time by an amount of your liking 
$cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds 
setcookie(session_name(),session_id(),time()+$cookieLifetime); 

Dla bardziej skomplikowanej dyskusji tej strategii przyjrzeć Maintain PHP Session in web app on iPhone

Powiązane problemy