Android Chrome window.onunload
Ich entwickle eine HTML5-Appspeziell für Android und Chrome. Das Problem, das ich habe, ergibt sich aus der Anforderung, offene Browser-Registerkarten zu verfolgen. Dazu erstelle ich eine eindeutige ID, die im sessionStorage der einzelnen Registerkarten gespeichert ist. Anschließend verfolge ich die geöffneten Registerkarten, indem ich jede ID in einem localStorage-Array registriere, auf das jede Registerkarte Zugriff hat.
Das Problem ist, dass ich die ID nicht aus localStorage entfernen kann, wenn ich eine Registerkarte mit dem window.onunload-Ereignis schließe. Der Code funktioniert gut in Desktop Chrome, aber ich kann ihn nicht in Android zum Laufen bringen.
$(window).on('beforeunload', function () {
removeWindowGUID();
});
function removeWindowGUID() {
var guid = sessionStorage.getItem("WindowGUID");
var tmp = JSON.parse(localStorage.getItem("WindowGUIDs"));
tmp = tmp.remove(guid); // remove is a custom prototype fn
localStorage.setItem("WindowGUIDs", JSON.stringify(tmp));
}
Dieses Ereignis wird ausgelöst, wenn eine Seite neu geladen wird, was in Ordnung ist, nur nicht beim Schließen. Ich habe auch versucht, das pagehide-Ereignis zu verwenden.