我正在使用phonegap/cordova 2.4 和用于cordova 的facebook 插件。
情况1:以“未登录用户”身份打开应用程序(=第一次):
应用程序显示登录按钮-> 使用 facebook 用户和密码登录-> 显示注销按钮。
情况2:第二次打开app(之前登录过):
应用程序自动将用户登录 -> 所示的注销按钮。
这是我想要的行为,但我面临一个问题:
我使用 jquery ( .hide()
and .show()
) 来隐藏包含我的登录和注销按钮的 div。问题是,在情况 2 中,login-div 显示 1 或 2 秒,因为调节 div 显示和隐藏的代码在以下位置触发:
FB.Event.subscribe('auth.login', function(response) {
我的问题:
如何确保登录按钮仅在情况 1 中显示,而不是在情况 2 中显示 1-2 秒?我试过这个:
function getLoginStatus() {
FB.getLoginStatus(function(response) {
if (response.status == 'connected') {
//alert('logged in');
} else {
//alert('not logged in');
$('#loggedin').hide();
//show login button:
$('#loggedout').show();
$('#loading').hide();
}
});
}
...
document.addEventListener('deviceready', function() {
try {
//alert('Device is ready!');
FB.init({ appId: "xxx", nativeInterface: CDV.FB, useCachedDialogs: false });
getLoginStatus();
...
getLoginStatus() 的问题在于,在调用此函数时,用户实际上已注销。之后我的应用程序会自动登录。我需要自动登录,但我想知道是什么原因造成的……是 FB.init 吗?
任何帮助深表感谢!