Flutter Android集成AD B2C遇ERR_UNKNOWN_URL_SCHEME及aadb2c90006错误求助
解决Flutter Android集成Azure AD B2C的重定向URI错误
核心问题分析
你遇到的两次错误本质都是重定向URI的配置不匹配,以及Android端未正确配置Intent Filter来处理自定义URL Scheme。以下是针对性的解决步骤:
步骤1:恢复并修正AndroidManifest.xml的Intent Filter配置
你之前移除BrowserTabActivity的配置是错误的,Azure AD B2C需要这个Activity捕获重定向请求。根据你更新后的重定向URIcom.example.appname://oauth/redirect,修改Manifest配置如下:
<activity android:exported="true" android:name="com.microsoft.identity.client.BrowserTabActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- 匹配自定义重定向URI --> <data android:scheme="com.example.appname" android:host="oauth" android:path="/redirect" /> </intent-filter> </activity>
步骤2:确保三方配置完全一致
必须保证以下三处的重定向URI完全相同:
- Azure门户应用注册中「移动和桌面应用」下的重定向URI:
com.example.appname://oauth/redirect - AndroidManifest.xml中Intent Filter的
data参数(scheme/host/path组合后与URI一致) - Flutter代码中初始化
aad_b2c_webview时的redirectUri参数
步骤3:清理缓存并重新构建
执行以下操作清除旧配置缓存:
- 运行
flutter clean清除Flutter项目缓存 - 手动删除Android项目的
build文件夹(路径:android/app/build) - 重新运行
flutter run
额外注意事项
- 不要混用
msauth开头的URI和自定义Scheme,选择一种配置方式保持统一 - 检查应用包名是否和URI中的
com.example.appname完全匹配,包名不一致会导致重定向失败
内容的提问来源于stack exchange,提问作者armache
相关产品推荐
相关产品推荐

