当前位置: 首页 > 知识库问答 >
问题:

清除Xamarin iOS Build中的Cookie NHttpCookieStorage未清除WebView的Cookie

谢哲瀚
2023-03-14

使用Xamarin WebView运行验证的应用程序。正在尝试删除用户注销或取消时的登录信息。这是我的代码,注意正在进行的调试。我已经检查了共享存储是否为空,但由于用户登录仍被缓存,所以发生了一些事情。注销后,如果网页再次被调出,则用户自动再次登录。代码正在运行,因为我正在获取调试器输出。

代码段:'

public void Clear()
       {
        NSHttpCookieStorage CookieStorage = NSHttpCookieStorage.SharedStorage;
        foreach (var cookie in CookieStorage.Cookies)
        {
            Debug.WriteLine(cookie);
            CookieStorage.DeleteCookie(cookie);
            
        }
    }

`

如何调用依赖项服务DependencyService.Get ().Clear();

共有1个答案

潘意
2023-03-14

将一个快速示例修改为C#以获得一种“Hacky”解决方案:

public void Clear()
    {
        NSHttpCookieStorage.SharedStorage.RemoveCookiesSinceDate(NSDate.DistantPast);

        WKWebsiteDataStore.DefaultDataStore.FetchDataRecordsOfTypes(WKWebsiteDataStore.AllWebsiteDataTypes, (NSArray records) => {

        for (nuint i = 0; i < records.Count; i++)
        {
                var record = records.GetItem<WKWebsiteDataRecord>(i);
                WKWebsiteDataRecord[] recordArray = new WKWebsiteDataRecord[record.DataTypes.Count];
                WKWebsiteDataStore.DefaultDataStore.RemoveDataOfTypes(record.DataTypes, NSDate.DistantPast, ()=> { });
            }

        });

    }
 类似资料:
  • 下面是我正在使用的代码: 执行这段代码后,它将清除整行文本,而不是只清除给定矩形内的文本。 为了更好地解释事情,我附上了pdf文档。 任何帮助都将不胜感激。

  • 我有一个如下定义的表视图 当用户单击时,我使用单击的项目详细信息重新加载表。在我重新加载之前,我对表项调用清除 现在,当我单击另一个项目并尝试重新加载表格时,它看起来像下面这样。这是非常奇怪的,因为应该只有一行,但行的大小是一样的,就像从以前的点击,其余的行是空的,除了图标。当我点击图标时,没有任何反应。任何人以前都面临过这种情况。有人知道这是什么原因吗? 我的工具定义如下。它们只是2 的

  • 本文向大家介绍C# 清除cookies的代码,包括了C# 清除cookies的代码的使用技巧和注意事项,需要的朋友参考一下 不同的浏览器会把cookie文件保存在不同的地方   以下是C# WebBrowser控件cookies的存放路径   C:\Users\{你的帐号名}\AppData\Local\Microsoft\Windows\INetCookies   cookies文件格式请查看相

  • 问题内容: 我的AngularJS应用程序中具有监视功能。 但是,在某些情况下(在我的示例中,更改了我的单页应用程序的页面),我想停止监视(例如清除超时)。 我怎样才能做到这一点? 问题答案: 返回注销功能。调用它将取消注册。

  • 清除地球上添加的数据,同时有将数据线和数据点清除的效果。 // 使用 clearData API 来清除数据 controller.clearData();

  • 标记-清除是主流的追踪式收集算法的一种,和引用计数相比,追踪式收集是一种间接方法,与程序耦合性很低,简单地说,就是程序在需要的时候只管申请内存,使用时也不用像引用计数机制要做实时地维护,直到一定条件(一般是已申请内存空间达到一定阈值),进程暂停执行,由垃圾收集器回收垃圾,然后继续执行,当然如果收集之后还是内存不足,就报错。很多语言的主流实现都使用追踪式收集,比如java,C#等 追踪式收集严格按照