Пользовательские вкладки Android Chrome - открыть ссылку в новой вкладке + сообщение
У меня есть две веб-страницы. Первый открывает второй в новой вкладке. Они разговаривают друг с другом с помощью JavaScript postMessage. Эта настройка прекрасно работает в любом браузере (настольном / мобильном).
Когда я пытаюсь смоделировать такое же поведение с помощью пользовательских вкладок Chrome на Android, вторая страница открывается в том же макете, а не в новом. В результате я больше не могу использовать postMessage.
Как заставить ссылки внутри настраиваемой вкладки открываться в новой настраиваемой вкладке и сохранять возможности postMessage?
2 ответа
Невозможно создать еще одну настраиваемую вкладку из веб-содержимого. Это потому, что мы хотим сохранить быстрый способ вернуться к приложению, открывшему вкладку.
С другой стороны, я не могу вспомнить логику проверки типа вкладки / видимости в postMessage. Похоже, ошибка.
Ошибка с подробным воспроизведением очень поможет, пожалуйста, используйте ссылку "этот шаблон" в README.md: https://github.com/GoogleChrome/custom-tabs-client
Спасибо!
Егор, спасибо за помощь!
Проблема была решена путем установки новейшей версии Chrome для Android.
Использование пользовательских вкладок Chrome с Chrome 48.0.2564.95 window2 загружает его содержимое в window1. Начиная с Chrome 49.0.2623.91, состояние window1 сохраняется, и window2 открывается сверху на той же пользовательской вкладке, таким образом скрывая window1. PostMessage работает просто отлично. Вы можете увидеть прикрепленный скриншот.
Отладка Android Chrome с помощью устройств Inspect
Тем не менее, незначительная ошибка все еще присутствует. Когда предупреждение запускается из нижней страницы окна 1, окно 2 становится неактивным, но остается видимым. Это означает, что фокус находится на window1, но вы видите содержимое window2. Я должен переместить фокус обратно в window2 вручную, используя отладчик, чтобы восстановить правильную рабочую настройку.