@SergeyVladimirovich

Почему множатся webview?

Добрый день, коллеги! Попытался на cordova собрать приложения для записывания gps-трэков. Написал простенький код использующий плагин cordova-plugin-geolocation, всё вроде отлично, но возникло одно но.

Я и раньше замечал в chrome://inspect, что у приложения может работать несколько одновременно webview, но не обращал на это внимания. Но теперь когда я включаю запись трэка, если приложения убрать в фон (открыть другое), то запись идёт (данные на мой сервер идут), но иногда если попытаться вернуться к приложению почему-то открывается новое webview которое ничего не знает про текущую запись (что логично флаг записи у меня в window.*). При этом в chrome://inspect я вижу что первое моё webview живёт дальше и работает, отправляет данные на сервер, только активным я его на телефоне сделать не могу.

Тестировал на android, на днях протестирую ещё в iOS.

Вопрос следующий, в чём смысл вообще cordova плодить webview? И нет ли возможности заставить его работать с одним экземпляром? Если нет, то может есть какие-то механизмы общения между webview одного приложения кроме localStorage?
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 1
@SergeyVladimirovich Автор вопроса
Удалось повторить: заходим в приложение, в андроиде, нажимаем Back, приложение закрывается, при этом в inspect видно что webview ещё висит, открываем снова приложение, открывается новое webview, старое остаётся.

Похоже это бага старой версии, у меня приложение работает на cordova 4.2.0. Собрал другое приложение под 5.x.x там по Back webview так же остаётся висеть, приложение типа закрывается, но вот при открытии его заново, хоть и создаётся новое webview (т.е. js-приложение заново инициализируется), но старое webview убивается. Но даже такое поведение для меня получается не приемлемым:(, возврат к состоянию не происходит, хотя если Back не использовать, а ходить между приложениями через Home, то всё отлично, состояние приложения сохраняется.

Под iOS повторить не удалось, т.к. там тупо нет кнопки Back на айфоне:).

Запретить Back, если это возможно? Видел где-то такое поведение, по Back приложение не закрывается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы