как я могу сделать запрос манифеста с помощью WKWebView

Я пытался использовать новый WebView в своем приложении, но кажется, что WKWebView не может работать с NSURLCache, а Manifest запрос не сработал, запрос не был загружен, а также ничего не было сохранено.

Кажется, все работает лучше, используя WKWebView вместо UIWebView, за исключением использования NSURLCache и Manifest, поэтому мне интересно, есть ли какие-то способы решить эту проблему.

P.S. Я пробовал частный API _setOfflineApplicationCacheIsEnabled:, и он работает, но приложение, использующее непубличный API, будет отклонено Apple... Теперь у меня нет идей.


person humphry    schedule 14.05.2015    source источник


Ответы (1)


Прямо сейчас экземпляры WKWebView будут игнорировать любые сетевые хранилища по умолчанию (NSURLCache, NSHTTPCookieStorage, NSCredentialStorage), а также стандартные сетевые классы, которые вы можете использовать для настройки сетевых запросов (NSURLProtocol и т. д.).

Таким образом, файлы cookie экземпляра WKWebView не хранятся в стандартном хранилище файлов cookie вашего приложения, и поэтому NSURLSession/NSURLConnection, который использует только стандартное хранилище файлов cookie, не имеет доступа к файлам cookie WKWebView (и именно это, вероятно, проблема у вас есть: «Статус входа», скорее всего, хранится в файле cookie, но NSURLSession/NSURLConnection не увидит файл cookie).

То же самое относится к кешу, учетным данным и т. д. WKWebView имеет свои собственные частные хранилища и поэтому не очень хорошо работает со стандартными сетевыми классами Cocoa.

Вы также не можете настраивать запросы (добавлять свои собственные заголовки HTTP, изменять существующие заголовки и т. д.), использовать свои собственные схемы URL-адресов и т. д., поскольку NSURLProtocol также не поддерживается WKWebView.

Так что прямо сейчас WKWebView довольно бесполезен для многих приложений, потому что он не участвует в стандартных сетевых API-интерфейсах Cocoa.

person Tanuj    schedule 14.05.2015
comment
Кажется, я читал этот комментарий где-то еще... в любом случае, спасибо - person humphry; 14.05.2015
comment
хм... действительно, но это говорит мне не использовать wkwebview... я хочу как-то решить этот вопрос - person humphry; 14.05.2015