2012-04-04 38 views
5

Khi tôi khởi động lại thiết bị Android của mình (tắt lửa) hoặc xóa ứng dụng, có vẻ như cookie của trình duyệt hoặc WebView 'phiên' không bị xóa. Điều này có vẻ khá khác với hành vi của các trình duyệt trên Windows hoặc MacOS khi cookie 'phiên' bị mất nếu bạn giết ứng dụng trình duyệt. Chỉ các cookie 'liên tục' sẽ được duy trì sau khi quá trình khởi động lại trình duyệt. Để làm rõ, ý nghĩa của 'cookie phiên' ở đây là cookie được máy chủ đặt không có ngày hết hạn, sử dụng tiêu đề http trong phản hồi, chẳng hạn như: Set-Cookie: mycookie = ifmr0846qcsdpeqqkgvuqmc5u7; path =/ Vì không có ngày hết hạn được chỉ định, các trình duyệt thường không tồn tại, giữ cho chúng tồn tại cho đến khi quá trình bị giết, dựa trên sự hiểu biết của tôi. Thông thường, id phiên được đặt bằng loại cookie này.android webview hoặc trình duyệt không xóa cookie phiên khi khởi động lại thiết bị

Tôi tin rằng chúng không bị xóa khi khởi động lại thiết bị hoặc khởi động lại ứng dụng vì nếu tôi đăng nhập vào trang web của mình, hãy thiết lập phiên (sử dụng cookie không liên tục/'phiên' cho id phiên, có tên PHPSESSID trong trường hợp đó), sau đó khởi động lại thiết bị và mở trình duyệt hoặc WebView đến cùng một url, tôi vẫn đăng nhập, có nghĩa là trình duyệt vẫn gửi cùng một cookie PHPSESSID được máy chủ đặt trước khi khởi động lại thiết bị.

Có ai có thể giải thích/xác nhận hành vi này cho AndroidView hoặc trình duyệt Android không? Làm thế nào để họ quản lý cookie phiên và cookie liên tục một cách chính xác?

cảm ơn.

Trả lời

-1

Bạn đúng, các cookie phiên không tự động hết hạn trong vòng đời của WebView. Nếu bạn gặp sự cố với điều này, bạn có thể luôn xóa tất cả cookie hoặc ghi đè cookie phiên của bạn một cách rõ ràng với giá trị trống.

tham khảo: Lifecycle of a session cookie in an Android WebView/CookieSyncManager

để xóa sử dụng phiên

CookieManager.getInstance().removeSessionCookie(); 
CookieManager.getInstance().removeAllCookie(); 
Các vấn đề liên quan