如何清除WinRT网络视图的cookie
How to clear cookies of WinRT webview?
有人知道如何清除WinRT WebView
的cookie吗?如果没有内置方法,任何人都可以在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);
在Windows 8.1预览版中,您可以使用HttpCookieManager类。
我不认为你可以删除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()
清除WebView的所有数据。这是相当不分青红皂白的,但它是有效的。
相关文章:
- Cordova/Phonegap在主要的Cordova网络视图中加载外部站点
- 安卓系统:通过loadUrl运行javascript时,网络视图中的视频会冻结
- 如何检查人行横道网络视图
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- 我可以在不显示网络视图的情况下使用phonegap吗
- 安卓网络视图中的无响应触摸
- Cordova网络视图超时错误
- Cordova嵌入式网络视图未响应navigator.camera未定义
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 网络视图中视频的页边距
- 如何在Android网络视图中完全禁用所有输入的软键盘
- 从SQlite中提取Lat-Long并在网络视图中显示
- Android网络视图:JavaScript在触摸时停止
- 无法在android网络视图中使用AJAX加载HTML部分
- Android网络视图”;未捕获的SyntaxError:意外的令牌ILLEGAL“;
- JavaScript未在Android网络视图中重新加载
- 网络视图的电子预加载脚本不起作用
- 清除网络视图数据
- 链接安卓按钮和网络视图 - 可能
- 谷歌地图v3更改标记图标在安卓网络视图