2017-08-25 1 views
1

Ich möchte den Rückruf einer Oauth2-Authentifizierung zu meiner App umleiten. Ich kenne den Absichtsfilter von Chrome, aber der Benutzer muss die App manuell zum Öffnen auffordern. Ich las im Internet nicht möglich ist, es automatisch zu tun, sondern Apps wie Instagram oder sogar Google IO App haben die Möglichkeit, aus dem Browser geöffnet zu sein (hier einige Beispiele https://instagram.com/_u/instagram und https://events.google.com/io/schedule). Ich habe auch versuchte Filter (im Manifest) versucht, aber sie funktionieren auch nicht. Ich benötige nicht, dass die App von der Callback-URL im OAUTH ausgelöst wird, bei Bedarf könnte ich ein Backend verwenden. Wie erreiche ich das?Umleitung URL zu App Android

+0

das gleiche, was ich brauche in meiner App Rückruf von Stripe oauth. –

Antwort

0

Ich endlich gefunden, wo das Problem war. Ich habe versucht, mit Javascript auf meine App umzuleiten, aber Chrome hat meine Anfrage blockiert, also habe ich versucht, es in den Kopfzeilen zu tun, und es hat gut funktioniert!

0

Was Sie brauchen Deep-Linking. Um Ihre App über einen Linkklick zu öffnen, müssen Sie den Intent-Filer "android.intent.action.VIEW" im Manifest hinzufügen.

<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="example.com" 
       android:pathPrefix="/api/v1/view" 
       android:scheme="http" /> 
     </intent-filter> 

Sobald Sie einen Link mit derselben Signatur zu bauen, wie im Manifest des Android-System erwähnt wird Ihre App in Chooser hinzufügen Link in der App zu öffnen und Sie werden die Daten in get "getIntent(). GetData()" in der jeweiligen Aktivität.

Wenn App den Link nicht installiert ist, wird sich offen in browser.Then es auf Browser handhaben.

Absicht zu senden, von Browser Sie demselben Schema wie manifestieren folgen müssen.

"intent://example.com/api/v1/view#Intent;scheme=http;package=com.app;category=android.intent.category.BROWSABLE;component=com.app.yourActivityname;action=android.intent.action.VIEW;end 
+0

Ich habe beide Lösungen bereits ausprobiert. Der erste funktioniert nicht und der zweite erfordert, dass der Benutzer die App zum Öffnen anfordert –