2015-11-23 18 views
10

Ho scritto un'applicazione che l'utente dopo aver fatto clic su Acquista Pulsante Lui/Lei reindirizza a Browser Internet (es .: chrome) e dopo il pagamento Voglio che torni alla mia app (la mia attività) così ho scoperto che dovrei usare Intent-Filter ma non funziona per me!Reindirizzare l'utente dal browser alla mia app dopo aver aperto un URL specifico

aggiungo questi codici in palese:

<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="returnApp" android:scheme="myapp"></data> 
</intent-filter> 

E quando apro un URL simile a questo:

myapp: // returnApp status = 1

la mia app non si apre

risposta

11

Prova ad aprirlo come myapp://returnApp/?status=1 (aggiungi carattere barra finale). Questo accade perché il parametro path è definito con il valore predefinito di /.

Sfortunatamente, non è possibile abbinare esattamente per stringa vuota. Come afferma la documentazione:

La parte di percorso di un URI che deve iniziare con un /.

Se siete veramente bisogno per iniziare app con esattamente url myapp://returnApp?status=1 è possibile aggiungere android:pathPattern=".*" parametro alla clausola di dati come

<intent-filter> 
    ... 
    <data android:host="returnApp" android:scheme="myapp" android:pathPattern=".*"></data> 
</intent-filter> 

filtro intenti con i dati android:pathPattern=".*" abbineranno per eventuali percorsi di cui uno vuoto.

+0

Non ha funzionato !! – esmaeil

+1

@esmaeil Ho aggiornato la risposta. – pepyakin

+0

@esmaeil, hai provato a lanciare l'app dalla riga di comando? Cosa viene stampato in logcat quando si esegue il seguente comando nella shell della riga di comando 'adb shell am start -a android.intent.action.VIEW -d 'myapp: // returnApp? Status = 1' --debug-log-resolution' ? – pepyakin

Problemi correlati