2011-08-23 42 views
9

Tôi có một WebView cho phép người dùng chia sẻ hình ảnh lên facebook. Quá trình này liên quan đến việc họ đăng nhập vào FB. Sau khi chúng được thực hiện, tôi phá hủy WebView và ứng dụng đặt lại và một người dùng khác được cung cấp cùng chức năng. Ý định là để WebView không duy trì trạng thái đăng nhập từ phiên này sang phiên khác, tuy nhiên, tôi không rõ cách đăng nhập người dùng vào cuối phiên của họ theo cách thủ công (gọi http://www.facebook.com/logout.php không còn hoạt động, rõ ràng), và lấy các phiên bản mới của WebView và WebChromeClient cũng không thực hiện được.Xóa phiên Facebook của người dùng trong Webview

Tuy nhiên, tôi nhận thấy rằng khi tôi cài đặt lại ứng dụng (khi tôi sửa đổi) đăng nhập bị xóa, vì vậy, tôi giả định rằng * bằng cách nào đó Webkit có thể nói rằng đây là một ứng dụng khác (vì nó đã được gỡ cài đặt và cài đặt lại) và tôi hy vọng tôi có thể tận dụng cơ chế này (hoặc bất kỳ cơ chế nào khác) để xóa bất kỳ thông tin nào có chứa thông tin đăng nhập của người dùng ... Tôi đoán đó là cookie, nhưng tôi không hoàn toàn chắc chắn rằng Là.

Tôi chắc chắn tôi không phải là người đầu tiên cần đăng nhập người dùng ra khỏi FB theo cách thủ công, nhưng không phải thông qua OAuth của riêng tôi (vì tôi không phải là người đăng nhập họ).

Trả lời

30

Nó được đặt theo cookie. Trước API 21 sử dụng:

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

nay phương pháp này đã được thay thế bằng removeAllCookies mà về cơ bản là giống nhau nhưng không đồng bộ với một callback.

+4

CÓ! tuyệt vời ... Tôi sẽ chỉ thêm điều này (vì nó là cần thiết nếu bạn chưa tạo một WebView khi bạn đang cố gắng để xóa các cookie) để được triệt để: http://developer.android.com/reference/android /webkit/CookieSyncManager.html#createInstance(android.content.Context) –

+1

Lưu ý: removeAllCookie() hiện không được dùng nữa – Roman

Các vấn đề liên quan