Firefox за Android не стартира приложение, когато се щракне върху връзката

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

Редактиране: Моля, имайте предвид, че това е публикация от 2013 г.

Желаното поведение е следното: На моя уебсайт имам връзка, която при щракване трябва да стартира приложението ми за Android. Ако приложението не е инсталирано, за предпочитане е страницата му в Google Play да бъде отворена, за да го изтеглите.

Метод

Начинът, по който го прилагам, е с „URI на намерението“ във формата: intent://myhost.com/#Intent;scheme=myscheme;package=com.myapp;end

В приложението регистрирам филтър за намерения в моя манифест и слушам за намерение, което съвпада. От браузъра обаче зависи да задейства такова намерение, когато се щракне върху връзката, така че приложението ми да може да стартира.

Тествах този метод с различни браузъри и работи на повечето от тях. С изключение на Firefox. С други браузъри приложението ми се стартира или страницата му в Google Play се зарежда (в случай че не е инсталирано на устройството).

Методът с "intent URI" е препоръчаният от Google. Работи перфектно в Chrome и в някои други браузъри. Има и други методи. Прочетох много теми и статии за възможностите. Основните алтернативи са:

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

  1. използвайки персонализирана схема, като myscheme://mywebsite.com
  2. използвайки обикновена http връзка, като http://mywebsite.com

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

Алтернатива 2 не работи на повечето браузъри и изглежда е отхвърлена в полза на метода „intent URI“.

Firefox по-специално

работи само с персонализираната схема (алтернатива 1). В случай на обикновена http връзка (алтернатива 2) тя просто зарежда връзката и показва уебсайта. В случай на препоръчания метод "intent URI", той не прави нищо. Всъщност показва диалогов прозорец, който пита дали искате да стартирате приложението, но когато щракнете върху Да, нищо не се случва. Така че изглежда Firefox разпознава връзки като "intent://...", но не ги обработва правилно.

В: Какъв е препоръчителният метод за стартиране на приложение от връзка във Firefox? Защо методът "intent URI" не се поддържа от Firefox?

Свързани връзки: https://developers.google.com/chrome/mobile/docs/intents https://stackoverflow.com/a/3472228/1045941 (имайте предвид, че нишката е доста стар)


person Stan    schedule 31.07.2013    source източник
comment
Може ли това да е полезно? support.mozilla.org/en-US/questions/977330 Изглежда, че Forefox заобикаля стандартния начин за обработка на намеренията на Android   -  person Display name    schedule 14.01.2014
comment
Намерихте ли някакво решение?   -  person TrtG    schedule 21.03.2014
comment
Не съм проучвал това от известно време, но направих бърз тест и изглежда, че все още не работи. Във връзката, публикувана от @Seppl, те обещават, че това трябва да бъде коригирано в последните версии. Някой има ли някаква нова находка?   -  person Stan    schedule 21.03.2014
comment
Доколкото мога да видя в моята собствена инсталация на Firefox на Android, сега има бутон за робот на Android в горната лента, който стартира намерение със страница, която е отворена в момента   -  person Display name    schedule 24.03.2014
comment
коя версия на Android използвате?   -  person Onur A.    schedule 05.09.2014
comment
По това време тествах на 4.1.2, 2.3.6 и 2.3.3. При всички тях резултатите бяха еднакви за Firefox. Не съм тествал с най-новите версии на Android в момента, нито с актуализирани версии на Firefox от 2013 г.   -  person Stan    schedule 16.09.2014
comment
Ако е грешка от firefox, не можете да направите много. Ако имате достъп до уеб страницата, която се показва, можете да проверите коя версия на браузъра (мобилен / firefox) и да покажете връзката за намерение за вашия целеви браузър.   -  person Vincent D.    schedule 12.11.2014
comment
Алтернатива 1 не работи за мен - само бял екран. Имам регистрирана персонализирана схема (напр. myscheme), когато щракна върху връзка (‹a href=myscheme://article?id=2492628›Magic‹/a›), само получавам бял екран (Chrome и браузърът по подразбиране работят). В същото време връзката ‹a href=market://details?id=myscheme›MarketAppURL‹/a› работи във Firefox. какво правя грешно Версия на Firefox: Mozilla/5.0 (Android; Mobile; rv:33.0) Gecko/33.0 Firefox/33.0   -  person MingalevME    schedule 12.11.2014
comment
Имам същия проблем, нищо не работи на Firefox 33.1 Android. Единственото нещо, което трябва да направите, е да пренасочите потребителя към Play Store, за да може да отвори приложението от там   -  person Mirko    schedule 12.11.2014
comment
Не знаех Web Intents, наистина интересна тема. Прочетох и изглежда само Chrome е предшественикът и го поддържа в момента, другите браузъри ще се прилагат бавно. Затова ви препоръчвам да използвате 1 алтернативен начин в момента - който съм използвал много пъти и работи добре - докато всички основни браузъри не го внедрят напълно...   -  person Sulfkain    schedule 13.11.2014
comment
Firefox поддържа схемата intent: сега: bugzilla.mozilla.org/show_bug.cgi?id=851693   -  person Jarett Millard    schedule 03.11.2016


Отговори (1)


Една от опциите би била да добавите скрит iframe, нещо като:

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

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

person Cash Lo    schedule 26.11.2014
comment
Това изглежда вече не работи на най-новата бета версия на Firefox за Android. Кошмар. - person st.derrick; 14.08.2015