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