Были проблемы?
private async Task CustomFormsWebViewOnAddCookiesRequested(Cookie cookie)
{
var webconf = Control.Configuration;
var webconf = new WKWebViewConfiguration()
{
UserContentController = new WKUserContentController(),
WebsiteDataStore = WKWebsiteDataStore.DefaultDataStore,
Preferences = new WKPreferences
{
JavaScriptEnabled = true
}
};
var array = await webconf.WebsiteDataStore.FetchDataRecordsOfTypesAsync(WKWebsiteDataStore.AllWebsiteDataTypes);
for (System.nuint i = 0; i < array.Count; i++)
{
var item = array.GetItem<WKWebsiteDataRecord>(i);
await webconf.WebsiteDataStore.RemoveDataOfTypesAsync(item.DataTypes, new[] { item });
}
var newCookie = new NSHttpCookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain);
await webconf.WebsiteDataStore.HttpCookieStore.SetCookieAsync(newCookie);
}
Ни в какую сетиться не хотят. Метод перехода на страницу срабатывает строго после этого кода. В HttpCookieStore куки есть, но WKWebView не подхватываются. Правильность установленных значений гарантированна
Привет. Тут как-то странно два раза объявляется переменная webconf. Убедитесь, что после создания конфигурации вы её устанавливаете в контрол (возможно это обязательно делать именно при создании контрола, в его конструктор). Еще у меня кажется были траблы с тем, что куки нужно было устанавливать в главном потоке. В любом случае такая реализация у меня точно работала как часы: https://gist.github.com/SIDOVSKY/7574db1a3f169e60beff75ecefd0d471
Спасибо, да, во всем убедился, и оказалось что проблема при создании самого NSHttpCookie, оказывается перед именем домена надо ставить точку типа “.google.com” и убрать все лишнее после доменной зоны. И тогда все работает. Может кому поможет PS:Код в целом рабочий, вебконфиг закомменчен там один, верно.
Обсуждают сегодня