Как загрузить WKWebView без представления (iOS)IOS

Программируем под IOS
Ответить
Anonymous
 Как загрузить WKWebView без представления (iOS)

Сообщение Anonymous »

Мне нужно запустить WKWebView в нескольких контекстах, в том числе в тех, где нет представления.
В приложении все в порядке. Загрузите его, свяжите его, покажите.
Но мне также нужно загрузить его в виджет - не для отображения, а для доступа к данным, хранящимся в indexeddb на странице, а также для задачи фоновой обработки (хотя это менее критично) и, наконец, в обработчике push-уведомления.
Проблема в том, что я не хочу перемещать все свое хранилище данных в приложение. Тогда мне придется дублировать то же хранилище и для Android. - и все работает нормально в браузере - мне не нужны 3 версии, если можно этого избежать.
Для веб-приложения локальное хранилище и хранилище indexeddb работают отлично.
Для WKWebView это здорово и если мне нужна информация, я могу запросить ее со страницы.
Но WKWebView, похоже, необходимо прикрепить к иерархии просмотра в реальном времени, и его нельзя прикрепить к иерархии представлений виджетов.
Есть ли у кого-нибудь способ создать экземпляр рабочего WKWebView без присоединения к стеку представлений или получить доступ к локальному хранилищу WKWebView и/или хранилищу indexeddb для сайта без полного WKWebView (например, доступ к JContext, но его привязка на полный сайт)
Примечание. Я пытаюсь создать код, который может работать в автономном режиме, поэтому я не могу просто запросить данные у своего основного сайта.
В качестве примера (на самом деле это не то, что я создаю, но это передает идею...)
Представьте себе сервис онлайн-календаря. Приложение показывает календарь, разрешает новые элементы и т. д. Все встречи кэшируются локально в indexeddb, поэтому вы можете открыть приложение и просмотреть их, даже если вы не в сети. Теперь вам нужен виджет для отображения календаря. Ему нужен доступ к тем же данным. Аналогичным образом, вы получаете уведомление о новом элементе календаря непосредственно перед потерей сигнала — вы открываете приложение, ожидая увидеть его (в конце концов, ваш телефон его получил), но его там нет, потому что обработчик уведомлений не может получить доступ к Интернету. контекст indexedDB
Я хочу сделать...
let web = WKWebView(noViewContext)
web.load("https://example.com/functionpage") // note, relying on caching here. I have that sorted)
web.evaluateJavaScript("SomeCodeHere()") { (outcome, error) in etc. etc.}


Подробнее здесь: https://stackoverflow.com/questions/791 ... a-view-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»