2011-01-13 16 views
10

Używam jQueryMobile i phoneGap dla aplikacji mobilnej na różnych urządzeniach. Używam pamięci lokalnej HTML 5, aby przechowywać rekordy, które działały przez użytkownika.Które zdarzenie do przechwycenia dla aplikacji zostało zamknięte?

Nie wiem, które zdarzenie phoneGap należy przechwycić tuż przed zamknięciem aplikacji, więc mogę się upewnić, że dane zostaną zapisane przed zakończeniem zamykania.

W oparciu o sugestię od użytkownika naughtur próbowałem rozładować i przedtem załadować zdarzenia, żadne z nich nie zostało zwolnione podczas zamykania aplikacji. Oto mój kod ciach:

function persistTasks(){ 
    alert ("is unloading the app"); 
    offlineTasklist.set("tasks", tasklist); 
} 

function init() { 
    document.addEventListener("unload", persistTasks, false); 
    login(); 
} 

$(document).ready(init); 
+0

to ciekawe. spróbuj wyładować i przedtem wczytać zdarzenia i oddzwonić, czy działają. Jeśli nie - będziemy musieli kopać w phonegap apis – naugtur

+0

Dzięki naugtur! Przyjąłem niektóre z odpowiedzi, ale ich odsetek nie odzwierciedla ich. Ale i tak dzięki!! – xueru

+0

Próbowałem rozładować i przedtem załadować, żaden z nich nie wystrzelił podczas zamykania aplikacji. – xueru

Odpowiedz

7

nie jestem w 100% pewien temat korzystania rozładować wydarzenia, ponieważ ci, technicznie może (nie jestem pewien, czy to dzieje się w PhoneGap) również zostać zwolniony podczas ładowania inną stronę internetową, czyli dzieje index.html do about.html w aplikacji PhoneGap.

Co najmniej dla systemu Android, masz dostęp do wydarzeń resume i pause. Więc można zrobić:

document.addEventListener('pause', function() { alert('this alert will show up in the background while your app is paused.'); }, false); 
document.addEventListener('resume', function() { alert('this alert will show up when you open the app back up.'); }, false); 
Powiązane problemy