flutter_web_auth 在 Flutter 中授权访问我的数据后,不会从 WebView 重定向到应用程序

flutter_web_auth doesn't redirect from WebView to the app after authorizing the access to my data in Flutter

首先,我正在尝试通过向我的应用程序验证我的帐户来获取授权码。
为此,我使用了这个包 flutter_web_auth.
在实施包页面上描述的所有内容并打开 WebView 以授权我的应用程序访问我的帐户数据后,我没有从 WebView 重定向到该应用程序,这是我对 AndroidManifest.xml 所做的更改和我的代码:

android/app/src/main/AndroidManifest.xml :

   <application
        android:label="swiftycompanion"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
        ( SOME CODE I HIDDEN THAT COME WITH THE INITIAL APP TO SIMPLIFY THE CODE )
        </activity>
       <activity
           android:exported="true"
           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.example.swiftycompanion://redirect" />
           </intent-filter>
       </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>

这是我的代码:

Future getAccessTokenWithAuthorizationCodeFlow() async {
  String url = 'https://api.intra.fr/oauth/authorize'
      '?client_id=MY_CLIENT_ID'
      '&redirect_uri=com.example.swiftycompanion%3A%2F%2Fredirect'
      '&response_type=code';
  try {
    final String result = await FlutterWebAuth.authenticate(
      url: url,
      callbackUrlScheme: 'com.example.swiftycompanion://redirect'
    );
    final String? token = Uri.parse(result).queryParameters['token'];
  } catch (e) {
    print(e);
  }
}

我使用相同的包,因为 android:scheme 只需添加你的包名称,最后不带 ://redirect。

请看下面的例子:

<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.example.swifty_companion" />
       </intent-filter>