我的Android应用程序集成了FB SDK登录。我打电话
LoginManager.getInstance().logIn
在一台设备上,即使安装了 FB 应用程序,我的应用程序的登录流程也不会打开 FB 应用程序,而是触发外部浏览器进行登录。如果我在那里输入凭据,则会出现错误“从嵌入式浏览器登录 Facebook 已被禁用” 可能是什么原因?
可能是该设备上 Facebook 应用程序的设置,具体而言,该应用程序的 使用 Facebook 登录 设置可能设置为 禁用 或 启用(仅限 Web)。禁用此设置后,Facebook 应用程序将不会处理来自其他应用程序的登录请求,而是将请求发送到网络浏览器。
您可以按照以下步骤检查和更改此设置:
1- 在设备上打开 Facebook 应用程序
2- 点击屏幕右上角的三条水平线打开菜单
3- 向下滚动到“设置和隐私”部分,然后点击“设置”
4- 向下滚动到“媒体和联系人”部分,然后点击“应用程序和网站”
5- 在“使用 Facebook 登录”下,确保启用切换。
发生这种情况的另一个原因是该应用程序使用的是旧版本的 Facebook SDK。确保您使用的是最新版本的 Facebook SDK。此版本的 SDK 将允许您指定登录流程的行为,无论是在 Facebook 应用程序中还是在浏览器中打开。
另一种可能性是在 Android 11+ 上,您需要在 AndroidManifest.xml 中引用查询包。发帖以防这仍然与任何人相关。
<queries>
<!-- Enable Facebook Express Login (via Facebook application - query package reference required for Android 11+ otherwise login will be via browser) -->
<package android:name="com.facebook.katana" />
</queries>
更多详情:
https://developer.android.com/training/package-visibility/declaring#package-name https://developers.facebook.com/docs/facebook-login/android#expresslogin