2015-04-09 11 views
6

Voglio aprire la mia app Android quando l'utente tocca il collegamento alla mia pagina Web (preferibilmente dal post di Facebook, ma iniziamo con un URL semplice).Open App from URL funziona su Firefox per Android ma non su Google Chrome

Per raggiungere questo obiettivo, ho creato un'attività UrlReceiver e aggiunto questo codice al mio file AndroidManifest.xml (URL sono solo a scopo di test):

<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> 

E questo sta lavorando su Firefox per Android , quando inserisco myapp://test/ apre automaticamente la mia app, quando inserisco martinfowler.com c'è una testina Android accanto all'URL che porta alla mia app. E questo va bene.

Ma è non lavorare su Google Chrome. Quando inserisco myapp://test/ inizia la ricerca su Google e quando inserisco martinfowler.com si apre solo la pagina web.

ho iniziato a scavare su questo sul web e abbiamo trovato questo documento: https://developer.chrome.com/multidevice/android/intents, exmplaining che schemi personalizzati non funziona in Chrome più così ho provato ad utilizzare questo URL (secondo il documento):

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 

Ma stanno anche iniziando la ricerca su Google. Cosa posso fare per aprire la mia app dall'URL in Google Chrome?

L'ho provato su KitKat e Lolipop.

risposta

5

Il problema era che ero stato digitando (o copia) gli URL in Chrome Omnibox (barra di ricerca) e in base a questo problema: https://code.google.com/p/chromium/issues/detail?id=451956 non è più supportato:

In http://crbug.com/331571 siamo ha deciso di non iniziare un intent se la navigazione originale viene avviata dalla digitazione di un utente perché pensavamo che generalmente non ci si aspetterebbe di lasciare Chrome quando si immette un URL nella omnibox.

Quindi aprire l'app dall'URL in Google Chrome funziona solo sul collegamento tocca, e non funziona quando si utilizza la barra di ricerca.

+0

Grazie. Quale dei collegamenti precedenti era quello funzionante alla fine? –

+0

In Google Chrome? Nessuno, è necessario fare clic sul collegamento, non è possibile digitare/copiarlo in Omnibox di Chrome (barra di ricerca). – KlimczakM