Приложение Android больше не использует браузер внутри себя, а открывает сайт в полном браузере

Почему в версии 1.7.1 приложение Android перешло на открытие сайтов в полном браузере вместо использования встроенного браузера внутри приложения?

Думаю, это коммит, так как в нём убрано использование ChromeCustomTab.

2 лайка

Теперь приложение ещё и в половине случаев падает при запуске. Можно ли откатиться на более старую версию?

Сожалеем, что приложение вылетает при запуске. Я разберусь с этим. Не могли бы вы сообщить, какое устройство вы используете и какая у вас версия Android?

Как вы верно заметили, изменение на использование браузера по умолчанию вместо ChromeCustomTab было внесено в том коммите 2020 года; оно уже должно было присутствовать в предыдущей версии приложения (1.6.0, если не ошибаюсь). Мы внесли это изменение, потому что ChromeCustomTab работал с ошибками и требовал установки Chrome на устройство. (Многие пользователи жаловались на требование наличия Chrome в приложении.)

Samsung Galaxy S9 на Android 10 с обновлением безопасности от 1 мая 2021 года (последнее доступное). Я полагаю, что сбой происходит, когда приложение находится в фоновом режиме в течение некоторого времени и не было явно закрыто.

Коммит датирован периодом после выпуска версии 1.6.0 (февраль 2020 года, если верить данным по адресу https://apkpure.com/discoursehub/com.discourse/versions). Удалённый код уже обрабатывал ситуацию, когда не удавалось использовать ChromeCustomTab и открыть ссылку, или же приложение не запускалось бы вовсе без установленного Chrome?

1 лайк

Спасибо, вы правы: удаление ChromeCustomTab было выполнено в версии 1.6.2, которая так и не вышла в продакшн (она находилась только в бета-тестировании). Таким образом, фактически это изменение появилось впервые в версии 1.7.0. Подробнее о причинах перехода см. по ссылке Discourse Hub doesn't open forums in their PWAs - #12 by md-misko. Помимо работы без Chrome, это изменение также позволяет запускать PWA из DiscourseHub.

Я собираюсь выпустить бета-версию с исправлением проблемы с крашем. Как только она будет готова, я опубликую здесь ссылку.

1 лайк

Хорошо, значит, решение — установить PWA для каждого форума? Нет, это тоже не работает: он всё равно открывает вкладку в Firefox (хотя я создал PWA через Chrome). Надо сказать, я никогда не находил работу с вкладками в Chrome медленной, certainly не по сравнению с открытием полного браузера. Возврат к хабу тоже был быстрым: просто потяните вниз, чтобы показать крестик вкладки Chrome.

Да, вы можете выбрать между использованием PWA или браузера. Если вы не видите запроса, вы можете сбросить настройки по умолчанию. В настройках Android найдите «Открытие ссылок», найдите URL вашего сайта, а затем на странице этого URL нажмите «Очистить настройки по умолчанию». После этого при переходе в DiscourseHub вам будет предложен выбор; если у вас установлен PWA, это должно выглядеть примерно так:

Также, чтобы решить проблему с вылетами, попробуйте версию 1.7.2 в канале бета-тестирования — https://play.google.com/store/apps/details?id=com.discourse

1 лайк

У меня нет аккаунта Google, поэтому я не могу получить доступ к бета-каналу (я использую Aurora Store, который, похоже, не поддерживает это).

Я сбросил настройки по умолчанию для Firefox, и теперь запрос появляется, но в нём отображаются только браузеры, а не PWA.

И Chrome PWA тоже не присылает мне уведомления. Неважно, отключение и повторное включение помогло получить одно уведомление. Дальнейшее исследование и чтение Add to homescreen banner on Android - #62 by Falco показывает, что часть WebAPK не работает у меня, так как именно она привязывает интенты для URL-адресов сайта, и я не вижу нового значка в меню приложений или в настройках приложений.

1 лайк

Я только что протестировал добавление вашего сайта как WebAPK на своём телефоне, и это сработало, хотя и потребовалось время. При тестировании других сайтов выяснилось, что сервер создания WebAPK от Google в данный момент работает немного медленно, но ожидание нескольких минут помогло мне.

1 лайк

Версия 1.7.2 приложения теперь доступна в Google Play Store (хотя неясно, как быстро Aurora Store увидит это обновление).

Aurora Store использует Google Play, просто без необходимости наличия аккаунта Google на телефоне (он использует анонимный аккаунт для получения токена).

Возможно, именно поэтому WebAPK не работает у меня, если для их создания требуется аккаунт Google на серверах Google.

Или же это связано с тем, что Chrome обращается к Google Play для установки WebAPK (chromium/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java at main · chromium/chromium · GitHub), что требует наличия аккаунта Google.

Таким образом, чтобы ответить на жалобы пользователей о том, что Chrome устанавливается, вы убрали ChromeCustomTab и вместо этого перешли на процесс, связанный с WebAPK, которые для корректной работы требуют Chrome (или браузер Samsung) и аккаунт Google. Это делает решение менее доступным. Кроме того, существует возможность использовать реализацию пользовательской вкладки по умолчанию в браузере, так как примерно половина моих приложений получает версию «Powered by Firefox» вместо версии Chrome.

1 лайк

Я немного покопался в этом вопросе и наткнулся на следующее:

https://git.tt-rss.org/fox/tt-rss-android/src/branch/master/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java#L97

А вот реализация, которая корректно использует пользовательские вкладки Firefox на моём устройстве:

Так что не могли бы вы вернуть эту функцию с добавлением такой дополнительной проверки? Это позволило бы корректно убрать зависимость от Chrome и снова сделать приложение полезным.

Проблема в том, что я хочу предоставить пользователям выбор. Возврат к CustomTabs (и исправление зависимости только от Chrome) не даст пользователям выбора — он принудительно использует кастомные вкладки всегда. Таким образом, пользователь, который хочет открыть сайт в браузере или в PWA, останется ни с чем. Мы не можем вернуться к такому подходу.

Однако я попробую найти способ добавить кастомную вкладку внутри приложения как вариант наряду с браузерами и PWA. Это немного сложно, не уверен, что это на 100% выполнимо, но я попробую.

Мне может потребоваться немного времени, чтобы приступить к этой задаче, но я сообщу вам, когда будет доступна тестовая бета-версия.

3 лайка

Я нашел время на выходных и только что выпустил обновленную версию приложения для Android (1.7.3), которая позволяет пользователям вернуться к использованию пользовательских вкладок. В правом нижнем углу экрана появилась новая кнопка, открывающая экран настроек, где можно сделать переключение. Дайте знать, как всё получится, как только вы сможете обновиться.

3 лайка

Я не вижу обновлённое приложение в Google Play. Оно задерживается на проверке Google или что-то в этом роде?

1 лайк

Оно должно появиться сегодня, извините (интерфейс Play Store по умолчанию использует поэтапный запуск).

Работает как ожидалось: с включённой настройкой открывается вкладка Chrome, а с отключённой — запускается полный браузер. Спасибо за столь быстрое обновление :slightly_smiling_face:

1 лайк

Эта версия исправила вылеты, но новая версия 1.7.3 снова постоянно вылетает у меня.

Я на бета-канале, синхронизированы ли эти версии между бета-версией и продакшном в Play Store?

[edit]: при включении настройки «открывать сайты во встроенном браузере» сайты с поддержкой PWA по-прежнему открываются как отдельные приложения (что ожидаемо), но вылеты случаются гораздо реже (почти никогда), тогда как при отключении этой настройки приложение вылетает каждый раз.