делить IndexedDB между iOS PWA и Safari - PullRequest
0 голосов
/ 03 мая 2018

Можно ли совместно использовать хранилища и данные IndexedDB между прогрессивным веб-приложением (PWA) и автономным Safari на iOS? Если да, какие шаги мне нужно предпринять, чтобы поделиться хранилищами / данными?

Мой пример использования: у меня есть потенциальный PWA, который использует стороннюю аутентификацию. Обычное поведение состоит в том, что при переходе на стороннюю страницу аутентификации PWA автоматически открывает страницу в новом окне Safari, поскольку она выходит за рамки. Я хотел бы сохранить токен аутентификации в IndexedDB из этого экземпляра Safari, открыть мой PWA, а затем загрузить токен из IndexedDB в мою PWA.

Я протестировал эту реализацию. Он отлично работает (т.е. я могу прочитать токен из IndexedDB) в автономном Safari, но когда я возвращаюсь к своему PWA и пытаюсь прочитать данные, его не существует. Это говорит о том, что о магазинах нельзя делиться, но я ищу более точный ответ. Я не нахожу никаких указаний на поиск в Интернете.

Примечание. Локальное хранилище, хранилище сеансов и файлы cookie не используются совместно Safari и PWA на iOS, поэтому не работают те решения, которые требовали использования IndexedDB

1 Ответ

0 голосов
/ 08 мая 2018

Вместо того, чтобы открывать новую вкладку, вы можете использовать всплывающее окно, например, как это было прекрасно объяснено здесь с примером и исходным кодом. Ключевой идеей, используемой здесь, является window.postMessage, которая позволяет окнам и фреймам передавать данные по доменам друг другу.

...