在使用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#;"黑客";解决方案:
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, ()=> { });
}
});
}