2015-04-27 17 views
6

Ich bin mir bewusst, dass der Offline-Anwendungscache in iOS WKWebView nicht unterstützt wird.Anwendungscache in WKWebView aktivieren

Dies ist in Safari aktiviert, so dass ich webkit Projekt für den verantwortlichen Code gesucht & fanden diese

WKPreferences

- (void)_setOfflineApplicationCacheIsEnabled:(BOOL)offlineApplicationCacheIsEnabled; 

Wer mit dieser Methode vertraut? Ist es möglich, den App-Cache in iOS zu aktivieren, indem Sie auf diese privaten Methoden zugreifen? (Ich werde nicht die App Appstor versenden)

Antwort

6

Ja, wir können App Cache aktivieren, indem private API Zugriff auf

eine Kategorie erstellen für WKPreferences und füge Methodensignatur zu folgen.

@interface WKPreferences (MyPreferences) 
- (void)_setOfflineApplicationCacheIsEnabled:(BOOL)offlineApplicationCacheIsEnabled; 
@end 

(Ich habe versucht, perform: withobject:. Aber es hat nicht funktioniert keine Ahnung, warum)

Nach dem WKWebView Initialisierung der AppCache aktivieren, indem das obige Verfahren in dem folgenden Objekt Aufruf

[_wkWebView.configuration.preferences _setOfflineApplicationCacheIsEnabled:YES]; 

Es erstellt die ApplicationCache.db-Datei im Cache-Verzeichnis und ermöglicht der Web-App, offline zu arbeiten.

Warnung:

2,5. Apps, die nicht-öffentliche APIs verwendet

+0

zugreift Open-Source-private API eine Verletzung? –

+0

Es ist nicht so, dass sie das nicht können, ich denke, dass sie es einfach nicht tun werden. Meine Vermutung ist, dass wir wollen, dass wir offline selbst arbeiten, anstatt den Appcache zu verwenden. –

+0

Sie müssen Apple dafür lieben! – Elad

1

Nach diesem tweet abgelehnt wird von bei Apple, wie von iOS 10, App Cache wird jetzt unterstützt in WKWebView:

https://twitter.com/andersca/status/743259582252879872

... als tut dies WebKit Bug-Report:

https://bugs.webkit.org/show_bug.cgi?id=152490

ich dies in WKWebView Nutzung dieser Website getestet haben:

http://webdbg.com/test/appcache/

und bestätigen kann es wie erwartet funktioniert sowohl im iOS Simulator und auf Geräten mit iOS 10.

+0

wie?Wo ist der WKWebview-Beispielcode? –

+1

Es sind keine Codebeispiele für die native Seite erforderlich, um den App-Cache zu unterstützen, aber Sie müssen natürlich die erforderlichen Änderungen am Webinhalt vornehmen. Allgemeine Informationen hierzu finden Sie in Apples HTML5 Offline Application Cache-Leitfaden: https://developer.apple.com/library/content/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/OfflineApplicationCache/OfflineApplicationCache.html –

+0

@AndrewEbling Speichert App Cache alles zwischen ? Werden beispielsweise AJAX-Anfragen und -Antworten zwischengespeichert? – Cloud9999Strife