2016-07-14 5 views
1

Ich entwickle eine App, die WKWebView verwendet, um Webinhalte zu rendern. Alles funktioniert gut bis auf eine Sache: Wenn ich eine Seite auf meine WKWebView laden, dann senden Sie die App für eine Weile in den Hintergrund (ich würde sagen etwa zehn Minuten) und öffnen Sie die App, meine WKWebView ist leer.So verhindern Sie, dass WKWebView nach dem Senden der App an den Hintergrund geleert wird

Ich denke, es wird automatisch geleert, um Speicherverschwendung zu vermeiden, aber was machen dann Safari oder Chrome, um den Inhalt der Webseite im Speicher zu halten?

Antwort

1

Kurze Antwort: Sie können nicht.

Meine Vermutung ist, dass Ihre App tatsächlich beendet wird, während es ausgesetzt ist, und Sie werden neu gestartet. Das können Sie auch nicht verhindern.

Wenn das System Speicher benötigt, sendet es Ihrer App eine Nachricht und Benachrichtigung mit wenig Speicheranwendungsdelegierten. WKWebView kann diese Benachrichtigung abonnieren und die Seite löschen, wenn die Benachrichtigung zu wenig Speicher vorhanden ist.

+0

Aber wie machen Google und Apple mit ihren jeweiligen Browsern? Denken Sie, dass sie den Inhalt jeder Webseite zwischenspeichern (zB 'NSUserDefaults'), wenn die App inaktiv wird? – Randy

+0

Nein, ich denke, sie cachen die URLs jeder Seite und laden sie dann neu, wenn Sie eine Registerkarte auswählen. –

+0

Alles klar, macht Sinn ... Danke Duncan! – Randy

Verwandte Themen