Пользовательские вкладки 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 вручную, используя отладчик, чтобы восстановить правильную рабочую настройку.

Другие вопросы по тегам