首页 > 解决方案 > 我在两个平台代码上都使用 Xamarin Form 5.0 Clearing Cookies 不起作用

问题描述

此代码在 Xamarin 中已弃用

安卓

        var cookieManager = CookieManager.Instance;
        cookieManager.RemoveAllCookie();

iOS

        NSHttpCookieStorage CookieStorage = NSHttpCookieStorage.SharedStorage;
        foreach (var cookie in CookieStorage.Cookies)
            CookieStorage.DeleteCookie(cookie);

请帮助我做退出页面。

标签: xamarin

解决方案


在ios中,您可以尝试以下代码:

public void Clear()
{
  NSHttpCookieStorage.SharedStorage.RemoveCookiesSinceDate(NSDate.DistantPast);
  WKWebsiteDataStore.DefaultDataStore.FetchDataRecordsOfTypes(WKWebsiteDataStore.AllWebsiteDataTypes, (NSArray records) => {

        for (System.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, () => { });
        }

    });
}

这是安卓解决方案:

 public async Task Clear() {
    var cookieManager = CookieManager.Instance; 
    cookieManager.RemoveAllCookie(); 
  }

参考:https ://github.com/xamarin/Xamarin.Forms/issues/12999#issuecomment-817791640


推荐阅读