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/... (имейте в виду, что поток довольно старый)

Ответы

Ответ 1

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

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

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