Ich versuche, meine GitHub-App zu autorisieren und zu meiner App zurückzukehren. Ich öffne die Autorisierungsseite mit Intent, kann aber nicht vom Browser zu meiner App zurückkehren. Könnten Sie sich bitte meinen Code ansehen und mir sagen, wo ich falsch lag?Ich kann nicht vom Browser zur App zurückkehren
LoginActivity.java
private final String clientId="myclientid";
private final String clientSecret="myclientsecret";
private final String redirectUri="http://localhost";
private final String state="randomshit";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Button loginButton = (Button) findViewById(R.id.loginbutton);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://github.com/login/oauth/authorize?" +
"&client_id="+clientId+
"&redirect_uri="+redirectUri+
"&state="+state)
);
startActivity(intent);
}
});
}
@Override
protected void onResume() {
super.onResume();
// the intent filter defined in AndroidManifest will handle the return from ACTION_VIEW intent
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith(redirectUri)) {
String code = uri.getQueryParameter("code");
if (code != null) {
Log.d("code",code);
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.figengungor.retrogithub">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="localhost"
android:scheme="http" />
</intent-filter>
</activity>
</application>
</manifest>
Meine GitHub App und umleiten uri:
Was meinen Sie mit 'kann nicht zurück zu meiner App von Browser gehen'? Was ist die Antwort, die Sie bekommen? – Jas
Was passiert, wenn Sie im Telefon auf die Zurück-Taste drücken? –
Nach der Autorisierung wird es zu meinem redirectUri weitergeleitet, und der Code-Parameter wird an mein redirectUri angehängt, was bedeutet, dass die Autorisierung erfolgreich ist. Es wird gesagt, dass, wenn redirectUri mit meiner Weiterleitung in dem Intent-Filter übereinstimmt, den ich hinzugefügt habe, es zurück zur App gehen soll und dann mein onResume-Teil den Code-Parameter extrahiert. Soll das nicht so funktionieren? –