微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决清除 Xamarin iOS Build NHttpCookieStorage 中的 Cookie 不清除 WebView 的 Cookie

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

代码片段: '

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

`

我如何调用依赖服务 DependencyService.Get<IClearCookies>().Clear();

解决方法

将一个 swift 示例修改为 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,()=> { });
            }

        });

    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。