关于使用 Xamarin.Auth 清除 Android WebView 的 cookie,我可能已经尝试了所有可以在网上找到的方法。Auth 库不暴露 Android WebView;我不能使用它的 WebSettings 也不能清除该 WebView 对象上的缓存。
Xamarin.Auth 公开了一种清除 cookie 的方法:
public static void ClearCookies()
{
global::Android.Webkit.CookieSyncManager.CreateInstance(global::Android.App.Application.Context);
global::Android.Webkit.CookieManager.Instance.RemoveAllCookie();
}
这似乎对 cookie 没有影响。我可以在通过 Chrome 进行调试时看到 cookie,并在那里清除它确实会删除所有 cookie。
我已经尝试过CookieManager.Instance.RemoveAllCookies(null);
,CookieManager.Instance.RemoveSessionCookies(null);
在 Xamarin.Auth 创建自己的实例之前创建一个新的 WebView,将 SetAcceptCookies 设置为 false,清除 WebViewStorage,并删除“webview.db”和“webviewCache.db”。但所有的 cookie 仍然存在。
我看了很多荒谬的建议和答案。
使用 Xamarin.Auth v1.5.0.3 并在 S4 Mini、S7、LG G3 Beat 上进行测试。
*编辑
由于 CookieManager.Instance.Sync() 异步运行,可能是这没有及时完成还是根本没有运行?