Еще не было исправлено для iOS 11.1 B4, поэтому я не ожидаю, что это будет исправлено в финальной версии 11.1 :-(
ся, есть проблема с iOS 11 (все еще проблема с iOS 11.0.1), веб-приложениями домашнего экрана и файлами cookie. Когда cookie устанавливается с сервера, iOS 11, кажется, периодически удаляет cookie. В других случаях, когда сервер истекает cookie, iOS 11, кажется, периодически не удается удалить cookie. Эти два поведения возникают после закрытия и повторного открытия веб-приложения на домашнем экране и, по-видимому, не воспроизводимы в Safari. Эти поведения также, кажется, не присутствуют в iOS 10 или iOS 9.
Я предполагаю, что это ошибка в iOS 11, но мне было интересно, если кто-то еще сталкивался с этой проблемой и выяснил, как обойти ее.
Например, этот код ASP.NET создает и истекает cookie при входе и выходе из системы. Когда URL-адрес индекса добавляется на домашний экран, и приложение закрывается и повторно открывается (т. Е. URL-адрес индекса перезагружается) после входа или выхода из системы, приложение иногда будет отображаться в неправильном состоянии после перезагрузки (зарегистрировано). после входа в систему или все еще вошли в систему после выхода из системы).
public class HomeController : Controller
{
[Route("~/")]
public ActionResult Index()
{
var loginCookie = Request.Cookies["Login"];
if (loginCookie != null)
{
return View();
}
else
{
return Redirect("Login");
}
}
[Route("~/login/")]
public ActionResult Login()
{
return View();
}
[HttpPost]
[Route("~/login/")]
public ActionResult LoginComplete()
{
var authCookie = new HttpCookie("Login", "login token")
{
Expires = DateTime.Now.AddMinutes(20)
};
Response.Cookies.Add(authCookie);
return Redirect("~/");
}
[Route("~/logout/")]
public ActionResult Logout()
{
var authCookie = new HttpCookie("Login", "login token")
{
Expires = DateTime.Now.AddMinutes(-1000)
};
Response.Cookies.Add(authCookie);
return View();
}
}
Вот полный репо если кто-то хочет попробовать воспроизвести проблему. Имейте в виду, что это периодически возникающая проблема, и может потребоваться несколько попыток.