Facebook Comments小部件?

时间:2018-12-04 14:06:43

标签: android facebook-comments

我正在遵循本教程

  

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

向我的Android应用程序中的帖子添加评论小部件,并且工作正常。用户需要输入电子邮件地址和密码才能发表评论。我的问题是,由于我在Android应用中使用此小部件,是否可以使用设备中预先安装的Facebook应用执行用户登录,我的意思是有办法检测设备上安装的Facebook应用并使用它执行登录? 谢谢 enter image description here

1 个答案:

答案 0 :(得分:0)

要检查您的用户是否安装了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);
}

使用Facebook api使用WebView进行编码,这可能会帮助您

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