我正在遵循本教程
https://www.androidhive.info/2016/09/android-adding-facebook-comments-widget-in-app/
向我的Android应用程序中的帖子添加评论小部件,并且工作正常。用户需要输入电子邮件地址和密码才能发表评论。我的问题是,由于我在Android应用中使用此小部件,是否可以使用设备中预先安装的Facebook应用执行用户登录,我的意思是有办法检测设备上安装的Facebook应用并使用它执行登录? 谢谢
答案 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