我有一个使用 Facebook Android SDK 的应用程序。一切正常(Facebook 登录、点赞功能),直到我安装了适用于 Android 的 Facebook 第 3 方应用程序。
如果没有第 3 方应用程序,我在选择登录 Facebook 时会获得 WebView。但是安装了 Facebook 应用程序后,用户将被定向到 FB 应用程序进行登录(我相信它会启动该应用程序的 Activity )。
有没有办法阻止我的应用程序使用第 3 方应用程序执行我在应用程序上执行的任何与 Facebook 相关的操作,并且仅使用 SDK 中的 WebView 进行登录?
提前致谢。
最佳答案
好吧,仔细阅读Facebook SDK的源代码并查看authorize
方法,找到了我的答案。
发现这不是冲突,但这就是它的工作方式。 Facebook SDK 更喜欢单点登录(如果可用),这意味着它肯定会使用 Facebook for Android 应用程序进行登录。
为了回答问题(如何防止应用程序使用第3方应用程序),这就是我所做的:
mFacebook.authorize(context,
new String[] { "user_photos", "friends_photos", "publish_stream" },
-1,
(DialogListener) dialogListener);
我刚刚添加了第三个参数,即 ActivityCode。 Facebook SDK 检查该值是否大于或等于零,并使用单点登录。
现在我知道理想且首选的方法是使用 Facebook SSO 方法。
关于Android:Android SDK 与 Facebook for Android 应用程序之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401410/