2015-08-01 21 views
5

Mam zdefiniowany filtr intencyjny do nasłuchiwania niestandardowego schematu w mojej aplikacji, ale muszę też przesłać dane do mojej aplikacji, aby móc odpowiednio działać.Uzyskiwanie danych do aplikacji z zamiarem z linku do przeglądarki

Co chcę osiągnąć - wyślij link do użytkownika (w przeglądarce), który kliknie i przeniesie go do mojej aplikacji, gdzie doda trochę danych do bazy danych w zależności od klikniętego adresu URL.

+0

pokaż swój kod .. – HassanUsman

+1

Oto odpowiedź na twoje pytanie http://stackoverflow.com/a/1609662/1384010. –

Odpowiedz

5

Musisz umieścić te dane w kierunku napastników, który dołączy do schematu URI. Powiedzmy skonfigurować swoją aktywność z następującym filtrem intencyjny z programu niestandardowej MojaApl:

<intent-filter> 
    <data android:scheme="myapp" /> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
</intent-filter> 

Teraz utworzyć link i dołączyć wszystkie dane chcesz schematu URI w postaci zapytania parametry:

myapp://open?custom_param1=val1 

Następnie w onCreate, można analizować intencją

Uri data = this.getIntent().getData(); 
if (data != null && data.isHierarchical() && activity != null) { 
    if (data.getQueryParameter("custom_param1") != null) { 
     String param1 = data.getQueryParameter("custom_param1"); 
     // do some stuff 
    } 
} 

Albo można użyć l serwisowym ike Branch, która umożliwia grupowanie nieograniczonej ilości danych w formacie JSON w link, który jest pobierany po kliknięciu linku i uruchomieniu aplikacji. Dzięki temu proces ten jest znacznie łatwiejszy.

0

Musisz umieścić tę kategorię w filtrze zamiar:

<category android:name="android.intent.category.BROWSABLE" />