Bonjour à tous,
Je cherche à me connecter à une API avec Android et faire en sorte que le redirect soit dans mon application.

Pour mon activité principale, le code est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
public class MyActivity extends Activity {
 
    private WebView mWebview ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        try {
            super.onCreate(savedInstanceState);
            String url = "https://api.test.com/oauth/authorize?response_type=token&client_id=test&redirect_uri=test://callback";
            mWebview = new WebView(this);
 
            mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
 
            mWebview.setWebViewClient(new WebViewClient() {
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                    Log.e("error", description);
                }
            });
 
            mWebview.loadUrl(url);
            setContentView(mWebview);
 
        }
        catch(Exception e){
            Log.e("APP", "exception", e);
        }
 
    }
 
 
}
Je suis bien redirigé automatiquement vers le formulaire de login au travers de l'API mais une fois connecté, j'ai l'erreur Page Web non accessible à l'adresse suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
test://callback#access_token=32...
Donc l'appel est bon mais il ne sait pas me rediriger sur mon appli. De plus dans les log, j'ai l'erreur ERR_UNKNOWN_URL_SCHEME. Mais, je ne vois pas pourquoi il ne sait pas me rediriger.

Le manifest est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="test.com.test" >
 
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:launchMode="singleInstance"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MyActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
 
        </activity>
        <activity
            android:name=".Logged"
            android:label="@string/title_activity_logged" >
 
            <intent-filter>
                <data
                    android:host="callback"
                    android:scheme="test" />
 
                <action android:name="android.intent.action.VIEW" />
 
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
L'activity Logged ne contient pour le moment que la méthode onNewIntent pour récupérer le token.

Auriez-vous une idée?

Merci d'avance pour vos réponses