4

当 Facebook 应用程序安装在设备上并且我没有登录时。我自己的应用程序在单击 facebook 登录按钮时打开 facebook 应用程序。如果我在 facebook 应用程序上登录,我自己的应用程序会从 facebook 应用程序获取登录详细信息并让我使用登录信息。当我没有在设备上安装 facebook 应用程序时,第一次在我自己的应用程序中单击 facebook 登录按钮时,它会在默认设备浏览器上打开 facebook 登录页面并保存我的登录凭据以供下次使用。下次我尝试登录时直接获取登录信息。

问题是当我在默认设备浏览器(比如 chrome)上显式打开 facebook 网站时。我直接登录到我从自​​己的应用程序登录的帐户。

浏览器正在缓存登录数据,我想停止它。

所以我想在单击 facebook 按钮时打开包含用于 facebook 登录的 webview 的登录对话框。

我已经在 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"/>

我怎样才能做到这一点?

4

2 回答 2

10

您必须在您的活动中添加以下代码,它将为您工作。

LoginManager.getInstance().setLoginBehavior(LoginBehavior.WEB_VIEW_ONLY);

或者

facebookLoginButton.setLoginBehavior(LoginBehavior.WEB_VIEW_ONLY);

有关更多信息,请参阅以下链接

https://developers.facebook.com/docs/reference/android/current/class/LoginBehavior/

于 2017-04-19T18:01:43.343 回答
0

对于 FaceBook,将此标签添加到您的 Manifest.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>

fb_login_protocol_scheme并从 Facebook 开发人员的应用仪表板中获取价值

于 2017-04-12T11:02:44.230 回答