[英]Facebook logout does not work Android [Facebook sdk 4]
我正在開發一款具有Facebook登錄功能的Android游戲,在嘗試注銷時遇到了以下奇怪的行為:
如果用戶按下Facebook注銷按鈕,關閉應用程序然后再次重新打開,則用戶仍然登錄(=訪問令牌仍然有效)。 作為測試,我在注銷后檢查了訪問令牌,它應該是null,但如果我關閉並重新打開應用程序,那么訪問令牌也不會為空。
似乎Facebook緩存訪問令牌,即使在注銷后也從緩存中獲取。
我嘗試使用本機Facebook按鈕和LoginManager.getInstance.logout(); 我已經在onCreate的頂部初始化了Facebook sdk,然后在setContent()之前,我按照Facebook文檔上的程序,但結果相同。
我正在使用Facebook sdk 4.6.0,我在Android 4.2.2和4.4.2上遇到了這個問題。
編輯
這是代碼:
- Facebook按鈕:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_settings);
btnFacebookLogout.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
});
}
- 普通按鈕:
btnNormalLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoginManager.getInstance().logOut();
}
});
有什么建議嗎?
提前致謝
好吧,我已經和那個該死的sdk打了大約一個小時,並發現了一個簡單的解決方案來解決這個問題。
只需嘗試執行以下操作:LoginManager.getInstance()。setLoginBehavior(LoginBehavior.WEB_ONLY)
優點:LoginManager.getInstance()。logOut()在這種情況下工作正常。
缺點:身份驗證將始終顯示在Webview對話框中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.