Javascript 如何清除WinRT webview的Cookie?
有人知道我如何清除WinRTJavascript 如何清除WinRT webview的Cookie?,javascript,windows-8,windows-runtime,microsoft-metro,windows-store-apps,Javascript,Windows 8,Windows Runtime,Microsoft Metro,Windows Store Apps,有人知道我如何清除WinRTWebView的cookies吗?如果没有内置方法,任何一个都可以用JavaScript来解决,这样我就可以通过WebView的InvokeScript方法来运行它。Android和iOS有简单的1-5行代码用于清除Cookie,为什么不在WinRT中?在Windows 8中执行以下操作: Array<String^>^ arguments = ref new Array<String^>(1); arguments->set(0, "v
WebView
的cookies吗?如果没有内置方法,任何一个都可以用JavaScript来解决,这样我就可以通过WebView
的InvokeScript
方法来运行它。Android和iOS有简单的1-5行代码用于清除Cookie,为什么不在WinRT中?在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);
Array^arguments=ref新数组(1);
参数->设置(0,“var cookies=document.cookie.split(“;”);”+
“对于(var i=0;i-1?cookie.substr(0,eqPos):cookie+
document.cookie=name+'=1;expires=Thu,1970年1月1日00:00:00 GMT'+
"};");
字符串^result=myWebView->InvokeScript(“eval”,参数);
在Windows 8.1预览版中,您可以使用类。我不认为您可以删除Javascript中的所有内容,但我将回答您问题的另一部分,即是否能够在WinRT中删除。对于标准cookies,您可以执行以下操作:
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()
清除所有WebView的数据。它非常随意,但很有效。@Xyroid JavaScript不能触摸HttpOnly cookies,来自adidas.ca的cookies是HttpOnly,即:Set cookie:dwsid=em8hn23nptoi_2pEeTJ0kL8Oz1XYkq-VqKPG8tH7AYmsuPe96bcqSLxsx9oqPhmFA-8zkfrp8yh3fieppzmw=;路径=/;HttpOnlySo有什么解决方案吗?