任何人都知道如何清除 WinRT 的 cookieWebView
吗?如果没有 in-build 方法,任何人都可以在 JavaScript 中有解决方案,所以我可以通过InvokeScript
. WebView
Android 和 iOS 有简单的 1-5 行代码来清除 cookie,为什么不在 WinRT 中呢?
问问题
1153 次
2 回答
3
在 Windows 8 中执行以下操作:
Array<String^>^ arguments = ref new Array<String^>(1);
arguments->set(0, "var cookies = document.cookie.split(';');" +
"for (var i = 0; i < cookies.length; i++) {" +
" var cookie = cookies[i];" +
" var eqPos = cookie.indexOf('=');" +
" var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;" +
" document.cookie = name + '=1;expires=Thu, 01 Jan 1970 00:00:00 GMT';" +
"};");
String^ result = myWebView->InvokeScript("eval", arguments);
在 Windows 8.1 Preview 中,您可以使用HttpCookieManager类。
于 2013-08-16T23:39:23.763 回答
1
我不认为您可以删除 Javascript 中的所有内容,但我会回答您关于能够在 WinRT 中执行此操作的问题的另一部分。对于您的标准 cookie,您可以执行以下操作:
public void clearCookiesForUri(String uri)
{
Windows.Web.Http.Filters.HttpBaseProtocolFilter baseFilter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
HttpCookieCollection cookieCollection = baseFilter.CookieManager.GetCookies(new Uri(uri));
Debug.WriteLine("Deleting cookies for " + uri);
foreach (HttpCookie cookie in cookieCollection)
{
Debug.WriteLine(cookie.Name + ": " + cookie.Value);
baseFilter.CookieManager.DeleteCookie(cookie);
}
}
我发现删除 HttpOnly cookie 的唯一方法是通过WebView.ClearTemporaryWebDataAsync()
. 这是非常不分青红皂白的,但它的工作原理。
于 2016-08-02T19:32:58.227 回答