2011-08-23 44 views
9

我有一個WebView,它允許用戶共享一個圖像到Facebook。這個過程涉及到他們登錄到FB。完成之後,我銷燬WebView並重置應用程序,爲不同的用戶提供相同的功能。目的是使WebView不會保持從一個會話登錄到下一個會話,但是,我不清楚如何在會話結束時手動登錄用戶(顯然,呼叫http://www.facebook.com/logout.php不再有效),並且抓取WebView和WebChromeClient的新實例也不會這樣做。我注意到,當我重新安裝應用程序(當我修改它)時,登錄被清除,所以,我假設*以某種方式Webkit可以告訴這是一個不同的應用程序(因爲它是卸載和重新安裝),我希望我可以利用這個(或任何其他)機制來清除它保存用戶的登錄信息......我猜這是一個cookie,但我不完全確定它是。在Webview中清除用戶的Facebook會話

我確定我不是第一個需要手動將用戶從FB中註銷的人,但不是通過我自己的oAuth(因爲我不是他們的用戶)。

回答

30

它由cookie設置。到21 API使用前:

android.webkit.CookieManager.getInstance().removeAllCookie(); 

現在這種方法已經被替換爲removeAllCookies這基本上是相同的,但異步回調。

+4

是的!真棒...我只是添加這個(如果你還沒有創建一個WebView,當你試圖清除cookie)是徹底的,因爲它是必要的:http://developer.android.com/reference/android /webkit/CookieSyncManager.html#createInstance(android.content.Context) –

+1

注意:removeAllCookie()現在已被棄用 – Roman