Reputation: 375
I am building an Android application that requires OAuth. I have all the OAuth functionality working except for handling the callback from Yahoo. I have the following in my AndroidManifest.xml :
<intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.BROWSABLE"></category> <data android:host="www.test.com" android:scheme="http"></data> </intent-filter>
Where www.test.com will be substituted with a domain that I own. It seems :
So can anybody help me with
Thanks for your help.
Upvotes: 15
Views: 8318
Reputation: 765
For OAUTH please make sure you are using V2 because V1 will be deprecated soon.
<intent-filter android:label="filter_react_native">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="www.test.com" android:scheme="https"/>
</intent-filter>
URI generated will be https://www.test.com
for
below example of an app data intent
<data android:host="people" android:scheme="peopleapp"/>
uri generated will be peopleapp://people
Please check if you are using router, If yes then you should have people screen in you stack navigator.
At last,
For the best way to test your intent data uri is:
Uninstall the existing app if not done yet.
Sync and build the code again.
Call a webview in your app with the uri peopleapp://people.
It should work.
if you are using simulator check the below link provided by android here
Run this in your terminal(try adb devices to test).
$ adb shell am start
-W -a android.intent.action.VIEW
-d <URI> <PACKAGE>
URI will be peopleapp://people
PACKAGE will be your package/application/ name ie..@string/app_name
.
Hope this helps you.
Upvotes: 0
Reputation: 375
So I changed my approach to use a custom scheme, rather than a web URL and it now all works as expected.
So my callback URL is:
X://callback
and my intent-filter is:
<intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.BROWSABLE"></category> <data android:scheme="X"></data> </intent-filter>
where X is the name of my customer scheme.
Upvotes: 14