You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native集成Azure AD B2C时BrowserTabActivity配置报错如何解决

问题原因及解决方案
  • 确认BrowserTabActivity配置添加到正确的Manifest文件
    必须添加到android/app/src/main/AndroidManifest.xml的<application>节点内部,不要误添加到debug、test环境对应的Manifest文件中,且配置需要放在其他activity同级位置。
  • 补充Android 12+必需的exported属性
    给BrowserTabActivity标签添加android:exported="true"属性,否则intent-filter不会被系统识别:
    <activity 
        android:name="com.microsoft.identity.client.BrowserTabActivity"
        android:exported="true">
      <!-- 原有intent-filter配置 -->
    </activity>
    
  • 校验data标签参数与实际配置完全匹配
    • android:host必须和你项目的applicationId(在android/app/build.gradle中定义)完全一致,不要直接复制示例中的com.checkmobileapp
    • android:path的值是你应用签名证书SHA-1哈希的base64编码值,debug环境和release环境的签名哈希不同,需要分别计算后在Azure后台对应配置,同时更新Manifest里的值
    • 路径值开头的/不能省略,大小写必须和Azure后台配置的重定向URI完全一致
  • 补充Android 11+的queries声明
    在Manifest的根<manifest>节点下(和<application>同级)添加浏览器查询声明,避免系统无法匹配到可用浏览器:
    <queries>
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
      </intent>
    </queries>
    
  • 校验MSAL初始化配置的重定向URI
    代码中MSAL配置的redirect_uri必须和Manifest配置的完全匹配,格式为msauth://[你的包名]/[签名哈希base64值]
  • 完全卸载旧应用后重新构建
    配置修改后先卸载测试设备上已安装的当前应用,再执行cd android && ./gradlew clean后重新运行项目,避免增量构建未更新Manifest配置。

内容的提问来源于stack exchange,提问作者Abdul Ahad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:45:02