当Facebook应用程序安装在设备上并且我没有登录时。我自己的应用程序在点击Facebook登录按钮时打开Facebook应用程序.如果我登录Facebook应用程序,我自己的应用程序从Facebook应用程序获取登录详细信息,并让我使用登录信息。当我没有在设备上安装Facebook应用程序时,当我第一次在自己的应用程序中单击Facebook登录按钮时,它会在默认设备浏览器上打开Facebook登录页面并保存我的登录凭据以供下次使用。下次我尝试登录时,它会直接获取登录信息。
问题是当我在默认设备浏览器(例如 Chrome(上显式打开 Facebook 网站时。 我直接从我自己的应用程序登录的帐户。
浏览器正在缓存登录数据,我想停止它。
所以我想打开登录对话框,其中包含Facebook登录的网络视图,当点击Facebook按钮时。
我已经像下面这样在 xml 中获取了按钮
<com.facebook.login.widget.LoginButton
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:facebook="http://schemas.android.com/apk/res-auto"
android:id="@+id/button_facebook_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
我怎样才能做到这一点?
您必须在活动中添加以下代码,它将为您工作。
LoginManager.getInstance().setLoginBehavior(LoginBehavior.WEB_VIEW_ONLY);
或
facebookLoginButton.setLoginBehavior(LoginBehavior.WEB_VIEW_ONLY);
欲了解更多信息,请参阅以下链接
https://developers.facebook.com/docs/reference/android/current/class/LoginBehavior/
对于 FaceBook,将此标签添加到您的清单.XML文件中
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
并从 Facebook 开发者的应用仪表板获取fb_login_protocol_scheme
价值
如果您的登录Facebook按钮在浏览器中打开,请更新SDK
https://developers.facebook.com/docs/app-events/upgrade-guide/
这是最后一个
implementation 'com.facebook.android:facebook-android-sdk:[8,9)'