返回

Android 14 上 MAUI B2C 登录流程挂起问题及其解决方法

Android

解决 Android 14 设备上 MAUI B2C 登录流程挂起问题

问题

在使用 Azure B2C 登录的 MAUI 应用程序中,登录流程可能会在 Android 14 设备上的 "BrowserTabActivity" 界面挂起,且没有错误信息。

解决步骤

1. 检查清单文件

  • 确保清单文件中包含必要的权限和活动:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

...

<activity android:name="microsoft.identity.client.BrowserTabActivity"
    ...
/>

2. 确保 MSALActivity 类可用

  • 确认 MSALActivity 类在项目中可用,负责处理 B2C 登录请求:
using Microsoft.Identity.Client;

namespace Project.Platforms.Android
{
    ...
    [IntentFilter(
        ...
    )]
    public class MsalActivity : BrowserTabActivity
    {
        ...
    }
    ...
}

3. 更新目标 SDK 版本

  • 尝试将应用程序的目标 SDK 版本更新为 34,与 Android 14 设备一致:
<uses-sdk android:minSdkVersion="25" android:targetSdkVersion="34" />

4. 尝试其他 Web 浏览器

  • 可以将 Custom Tabs 浏览器替换为 WebView 或内置浏览器:
...

<queries>
  <intent>
    <action android:name="android.support.customtabs.action.CustomTabsService" />
  </intent>
</queries>

...

5. 检查日志和调试信息

  • 检查设备日志和调试信息以查找潜在错误:

6. 联系 Microsoft 支持

  • 如果以上步骤无效,请联系 Microsoft 支持。

常见问题解答

  • 为什么会在 Android 14 上出现此问题?

    • Android 14 中的 Web 浏览器限制导致 Custom Tabs 无法正确处理 B2C 登录流程。
  • 我是否必须将应用程序的目标 SDK 版本更新到 34?

    • 强烈建议更新目标 SDK 版本以解决兼容性问题。
  • 我可以在其他 Android 版本上重现此问题吗?

    • 此问题仅影响 Android 14 及更高版本。
  • 更新目标 SDK 版本后,我的应用程序还有其他兼容性问题吗?

    • 更新目标 SDK 版本可能会引入新的兼容性问题。建议对应用程序进行全面测试。
  • 如何防止此问题在将来版本中再次发生?

    • 关注 Android 发布的更新,并根据需要更新应用程序以解决兼容性问题。