2015-04-09 26 views
6

Chcę otworzyć aplikację na Androida, gdy użytkownik kliknie link do mojej strony internetowej (najlepiej z postu na Facebooku, ale zacznijmy od zwykłego adresu URL).Otwarta aplikacja z adresu URL działa w przeglądarce Firefox na Androida, ale nie w Google Chrome.

Aby to osiągnąć, Utworzyłem działalność UrlReceiver i dodaje ten kod do mojego pliku AndroidManifest.xml (adresy są tylko dla celów testowania):

<activity 
     android:name=".main.core.UrlReceiver" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 

      <data 
       android:host="martinfowler.com" 
       android:pathPrefix="/" 
       android:scheme="http"/> 
      <data 
       android:host="www.martinfowler.com" 
       android:pathPrefix="/" 
       android:scheme="http"/> 
      <data 
       android:host="test" 
       android:scheme="myapp"/> 
     </intent-filter> 
</activity> 

A to działa na Firefox dla Androida, po wpisaniu myapp://test/ automatycznie otwiera się moja aplikacja, gdy wprowadzę martinfowler.com obok adresu URL, który prowadzi do mojej aplikacji, znajduje się głowa Androida. I to jest w porządku.

Ale jest nie działa na Google Chrome. Po wprowadzeniu myapp://test/ rozpoczyna się wyszukiwanie w Google, a po wpisaniu martinfowler.com otwiera się strona internetowa.

zacząłem kopać na ten temat w internecie i znaleźliśmy ten dokument: https://developer.chrome.com/multidevice/android/intents, exmplaining że niestandardowych schematów nie będą działać w Chrome już tak próbowałem używając tych adresów URL (w zależności od dokumentu):

intent://test/#Intent;scheme=myapp;package=com.my.app;end 
intent://#Intent;scheme=myapp;package=com.my.app;end 
intent://test/#Intent;package=com.my.app;scheme=myapp;end 
intent://#Intent;package=com.my.app;scheme=myapp;end 

Ale to także rozpoczyna wyszukiwanie w Google. Co mogę zrobić, aby otworzyć aplikację z adresu URL w przeglądarce Google Chrome?

Testowałem to zarówno na KitKat, jak i Lolipop.

Odpowiedz

5

Problem polegał na tym, że byłem wpisując (lub kopiowanie) adresy URL w Chrome omniboksu (paska wyszukiwania) i zgodnie z tym numerze: https://code.google.com/p/chromium/issues/detail?id=451956 to już nie jest obsługiwane:

W http://crbug.com/331571 my Postanowiliśmy nie uruchamiać intencji, jeśli oryginalna nawigacja została rozpoczęta od wpisania przez użytkownika, ponieważ uznaliśmy, że użytkownik zazwyczaj nie spodziewałby się, że opuści Chrome po wpisaniu adresu URL w omniboksie.

Otwieranie aplikacji z adresu URL w przeglądarce Google Chrome działa tylko po kliknięciu linku i nie działa podczas korzystania z paska wyszukiwania.

+0

Dziękuję. Który z powyższych linków był na końcu działający? –

+0

W przeglądarce Google Chrome? Nie musisz klikać linku, nie możesz go wpisać/skopiować w Chrome Omnibox (pasek wyszukiwania). – KlimczakM

Powiązane problemy