我在两个平台上都使用 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);

请帮助我做退出页面

解决方法

在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