各モバイル プラットフォームの Cookie の優れた点は、アプリ全体で共有される Cookie コンテナーであることです。WebView は、プラットフォームが保持する Cookie を保持しないため、HTTP 呼び出しやさまざまな WebView でさえ、すべて同じ共有 Cookie コンテナーにアクセスできます。
ただし、リフレクションが必要なため、一部のプラットフォームから引き出すのは難しい場合があります。SSO ソリューションで、最初に Web ページにアクセスしてサインオンするだけでよい場合は、とにかくすべて同じ Cookie を共有するため、これを行う必要はありません。
アンドロイド
Android には、HTTP と WebView 用に 2 つの個別の Cookie コンテナーがあります。その奇妙なもの。したがって、あなたは持っています
using System.Net.Http;
private static CookieContainer _cookieContainer = new System.Net.CookieContainer();
private static Android.Webkit.CookieManager _cookieManager = Android.Webkit.CookieManager.Instance;
HTTP リクエストを使用すると、これを行うことができます
HttpClient client = new HttpClient(new HttpClientHandler() { CookieContainer = cookieContainer });
WebView はもう一方を使用し、各コンテナーで Cookie を取得および設定できます。
iOS
これは簡単です、それらはすべてに保存されています
NSHttpCookieStorage.SharedStorage.Cookies
WinRT
using Windows.Web.Http; //NOT: Microsoft.Net.Http
var filter = new HttpBaseProtocolFilter();
HttpClient client = new HttpClient(filter);
// Use this, while it comes from an instance, its shared across everything.
filter.CookieManager