Kontext:
$cookies.put()
Problem:
Bei Android, wenn der Benutzer die Anwendung 30 Sekunden nach dem Aufruf von $cookies.put()
beendet, wird der Cookie beim nächsten Neustart gelöscht.
Wenn der Benutzer mehr als 30 Sekunden (35 Sekunden oder länger) wartet, funktioniert alles.
Frage:
Wie können wir die sofortige Speicherung des Cookies erzwingen (oder zumindest viel schneller)?
Hinweise:
Ich hatte das gleiche Problem und habe ein kleines Plugin (noch in Arbeit) gemacht, um das zu beheben.
Es stellt die flush-Methode zur Verfügung, die Ihre Cookie-Änderungen (put und remove) auf den persistenten Speicher anwendet.
Link zum cordova-plugin-cookie-manager
Fühlen Sie sich frei, etwas beizutragen.
Der CookieManager -Design im Android macht es schwierig zu implementieren.
Die webview
und die cookiemanager
, die ihre eigenen in_memory
Datenbanken enthalten und miteinander synchronisiert sind, müssen daher nicht synchronisiert werden.
Die removeSessionCookie
bietet keinen Callback oder irgendeinen Weg um sie abzuschließen und da diese Methode in den WebView
classic Versionen implementiert wurde.
Hier sind einige Lösungen, mit denen Sie zwischen HttpUrlCookieManager
und android webkit cookie manager
Eine andere Sache, die hier zu beachten ist, ist, wenn Sie $cookie.put()
verwenden, definiert cookies
zusammen mit den restlichen HTTP-Headern zum Client, aber wenn Sie third party api's
verwenden, um cookies
it zu erhalten enthält möglicherweise keine Cookies mehr nur von client
, was zu unerwünschten Nebenwirkungen führen kann.
Sie können auf den Link verweisen, wie vom Autor zu diesem Post vorgeschlagen - Autorpost und hier ist der Link für die Protokolle, die beim Definieren der Cookies verwendet werden Link hier
Hier ist ein weiterer Link, über den ich gestolpert bin, der vielleicht ein wenig helfen kann
oder um dasselbe Repository / die gleiche Datenbank von webview
und HttpUrlConnection
zu verwenden, können Sie Ihren eigenen Handler erstellen, wie er im folgenden Stack-Thread implementiert ist: Stack-Thread
Ich hoffe, es kann Ihnen ein wenig helfen.