Виджет комментариев Facebook? - PullRequest
0 голосов
/ 04 декабря 2018

Я следую этому уроку

https://www.androidhive.info/2016/09/android-adding-facebook-comments-widget-in-app/

, чтобы добавить виджет комментариев к сообщениям в моем приложении для Android, и он работает нормально.Пользователь должен ввести свой адрес электронной почты и пароль, чтобы оставить комментарий.Мой вопрос заключается в том, что, поскольку я использую этот виджет в своем приложении Android, есть ли способ выполнить вход пользователя с помощью предварительно установленного приложения Facebook на устройстве, я имею в виду, есть ли способ обнаружить приложение Facebook, установленное на устройстве, и использоватьвойти в систему?Спасибо enter image description here

1 Ответ

0 голосов
/ 04 декабря 2018

Чтобы проверить, установлен ли ваш пользователь на Facebook:

public static boolean isPackageInstalled(Context c, String targetPackage) {
    PackageManager pm = c.getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(targetPackage, PackageManager.GET_META_DATA);
    } catch (NameNotFoundException e) {
        return false;
    }
    return true;
}

Вы можете использовать следующие пакеты:

com.facebook.orca
com.facebook.katana
com.example.facebook
com.facebook.android

И проверить, имеет ли он эту функцию:

boolean hasPackage = isPackageInstalled(MainActivity.this, "com.facebook.katana");

Поскольку у него (или нет) установлено приложение, вы можете использовать его учетные данные, используя Facebook SDK.

callbackManager = CallbackManager.Factory.create();

loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("email");
    // If using in a fragment
    loginButton.setFragment(this);    

    // Callback registration
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
        }

        @Override
        public void onCancel() {
            // App code
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
        }
    });

Подробнее об этом можно прочитать в:

https://developers.facebook.com/docs/facebook-login/android

Для предотвращения проблем с SDK:

if (Build.VERSION.SDK_INT >= 21) {
        webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
}

кодируйте с помощью WebView с помощью API Facebook, который может помочь вам:

https://gist.github.com/nguyenkims/28f3dc9d2414c3184263fab52b93351e

...