Подтвердить что ты не робот

Firefox для Android не запускает приложение при нажатии ссылки

Firefox не запускает намерения для нажатых ссылок так, как должно. Поэтому невозможно запустить их приложение, щелкнув ссылку в Firefox (что возможно в Chrome и других браузерах).

Требуемое поведение: На моем сайте у меня есть ссылка, что при нажатии на нее следует запустить приложение для Android. Если приложение не установлено, желательно его открыть в Google Play, чтобы загрузить его.

Метод

Способ, которым я его реализую, - это "намеренный URI" формы: intent://myhost.com/#Intent;scheme=myscheme;package=com.myapp;end

В приложении я регистрирую фильтр намерений в своем манифесте и слушаю намерение, которое соответствует. Тем не менее, браузер должен запускать такое намерение при нажатии ссылки, чтобы мое приложение могло начать.

Я тестировал этот метод с различными браузерами, и он работает на большинстве из них. С заметным исключением Firefox.. В других браузерах запускается приложение или загружается его страница в Google Play (если она не установлена ​​на устройстве).

Метод с "намеренным URI" рекомендуется Google. Он отлично работает на Chrome и в некоторых других браузерах. Существуют и другие методы. Я прочитал много потоков и статей о возможностях. Основные альтернативы:

Альтернативные методы

  • с использованием пользовательской схемы, например myscheme://mywebsite.com
  • используя обычную ссылку http, например http://mywebsite.com

Альтернатива 1 не рекомендуется по двум причинам: - У меня нет такой схемы, она не существует глобально, это неправильно. Google также использовал market://... для запуска приложения Google Play, но они признали, что это неправильно и должно измениться. - Если мое приложение в настоящее время не установлено, оно не будет запущено, и большинство браузеров отобразит страницу с ошибкой, что явно нежелательно.

Альтернатива 2 не работает в большинстве браузеров и кажется устаревшей в пользу метода "намеренного URI".

Firefox в частности

работает только с пользовательской схемой (вариант 1). В случае обычной ссылки http (альтернатива 2) она просто загружает ссылку и показывает веб-сайт. В случае рекомендованного "метода URI" намерений он ничего не делает. Фактически, в нем отображается диалоговое окно с вопросом, хотите ли вы запустить приложение, но когда вы нажимаете "Да", ничего не происходит. Поэтому кажется, что Firefox распознает такие ссылки, как "intent://...", но не обрабатывает их должным образом.

Q: Каков рекомендуемый метод запуска приложения из ссылки в Firefox? Почему метод "намеренного URI" не поддерживается Firefox?

Ссылки по теме: https://developers.google.com/chrome/mobile/docs/intents qaru.site/info/18380/... (имейте в виду, что поток довольно старый)

4b9b3361

Ответ 1

Один из вариантов - добавить скрытый iframe, что-то вроде:

<iframe src="myscheme://..." style="visibility: hidden"></iframe>

Он протестирован для работы с firefox, но он не будет работать на хроме. Вероятно, вы хотите использовать некоторое обнаружение агента пользователя, вот пример: http://www.mazdigital.com/blog/post/2014/deep-links-on-mobile-browsers-demystified/