Javascript 如何清除WinRT webview的Cookie?

Javascript 如何清除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

有人知道我如何清除WinRT
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有什么解决方案吗?