Ffltter-OAuth2-Android-重定向无法正常工作

xvw2m8pv  于 2022-09-21  发布在  Android
关注(0)|答案(2)|浏览(151)

我对在Android上实现Ffltter有一个问题。在iOS上,它运行得很好。下面是我的androidManifest.xml:

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

我是这样定义SpotifyClient的:

class SpotifyOAuth2Client extends OAuth2Client {
    SpotifyOAuth2Client({required String redirectUri, required String customUriScheme}) :
            super(
                authorizeUrl: 'https://accounts.spotify.com/authorize',
                tokenUrl: 'https://accounts.spotify.com/api/token',
                redirectUri: redirectUri,
                customUriScheme: customUriScheme) {
        this.accessTokenRequestHeaders = {'Accept': 'application/json'};
    }
}

这里是我尝试给客户打电话的地方:

OAuth2Client client = SpotifyOAuth2Client(
            redirectUri: 'com.mycomp.myapp://callback',
            customUriScheme: 'com.mycomp.myapp');
var authResp = await client.requestAuthorization(
            clientId: 'huhuhuhuhuhuhuhuhu',
            customParams: {'show_dialog': 'true'},
            scopes: ['user-read-private', 'user-read-playback-state', 'user-modify-playback-state', 'user-read-currently-playing', 'user-read-email']);

print(authResp.code);

这款应用正确地触发了对Spotify的授权。我可以登录并在Web浏览器上接受。然后我被重定向到我的应用程序,但什么也没有发生。上面的print(authResp.code)(当然还有后面的所有内容)永远不会触发。

再说一次,在iOS上我没有问题。

我已经尝试了很多东西,但都没有成功。任何帮助都将不胜感激!

8ehkhllq

8ehkhllq1#

经过多次试验,我终于解决了这个问题。希望它能帮助其他人。

添加以下活动(而不仅仅是现有活动中的意图筛选器)就成功了:

<activity android:name="com.linusu.flutter_web_auth.CallbackActivity" >
  <intent-filter android:label="flutter_web_auth">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="com.mycomp.myapp" android:host="callback" />
  </intent-filter>
</activity>
uyto3xhc

uyto3xhc2#

嗨,你能分享一下代码吗?我的代码no在尝试添加另一个活动时不起作用

<activity
       android:name="io.flutter.embedding.android.SplashScreenDrawable">
       <intent-filter android:label="flutter_web_auth">
           <action android:name="android.intent.action.VIEW" />
           <category android:name="android.intent.category.DEFAULT" />
           <category android:name="android.intent.category.BROWSABLE" />
           <data android:scheme="com.mycomp.myapp" android:host="callback" />
       </intent-filter>
       <meta-data
           android:name="io.flutter.embedding.android.SplashScreenDrawable"
           android:resource="@drawable/launch_background"
           />
   </activity>

相关问题