私の UIWebview は Cookie をまったく保存していません。Cookie レス モードでスタックし、その結果、Web ページは代わりに Cookie 情報を URL に入れています。
これが私がやっていることです。UIWebview 用のシングルトンと、下部に 4 つの UITabBar ボタンがあります。各タブバー ボタンは、ユーザーをサイトの別のページに移動させます。これで、ユーザーが webview 自体を介してサイトをナビゲートしているときに、すべて問題なく、セッションが持続します。しかし、ユーザーがタブバー ボタンをクリックすると、セッションはリセットされます。
NSHttpCookieStorage を設定して、常に Cookie を受け入れるようにしました。まだ行きません。
UIWebview と NSMutableUrlRequest のシングルトンのコードは次のとおりです
public static UIWebView instance;
public static NSMutableUrlRequest urlRequest;
public static NSUrlConnection connection;
public static NSHttpCookieStorage cookie;
static bool TokenSent = false;
public UIWebViewSingleton () {}
public static UIWebView Instance
{
get
{
if (instance == null)
{
Debugger.Debug ("new uiwebview created");
cookie = NSHttpCookieStorage.SharedStorage;
cookie.AcceptPolicy = NSHttpCookieAcceptPolicy.Always;
connection = new NSUrlConnection();
instance = new UIWebView(new RectangleF(0f, 0f, 320f, 416f));
instance.ScalesPageToFit = true;
instance.LoadStarted += delegate {
UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;
};
instance.LoadFinished += delegate {
UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
AcquireUserId();
};
instance.MultipleTouchEnabled = false;
}
return instance;
}
}
public static NSMutableUrlRequest UrlRequest
{
get
{
if (urlRequest == null)
{
urlRequest = new NSMutableUrlRequest();
}
return urlRequest;
}
}
これは、どのボタンが押されたかに基づいてページを変更する方法です。戻るボタンは正常に機能しています。
case BTN_BACK:
btn_ret.TouchUpInside += delegate(object sender, EventArgs e) {
UIWebViewSingleton.Instance.GoBack();
};
break;
case BTN_GUIDE:
btn_ret.TouchUpInside += delegate(object sender, EventArgs e) {
UIWebViewSingleton.UrlRequest.Url = new NSUrl(StaticFileNames.GuideUrl);
UIWebViewSingleton.Instance.LoadRequest (UIWebViewSingleton.UrlRequest);
};
break;
case BTN_HOME:
btn_ret.TouchUpInside += delegate(object sender, EventArgs e) {
UIWebViewSingleton.UrlRequest.Url = new NSUrl(StaticFileNames.BaseUrl);
UIWebViewSingleton.Instance.LoadRequest (UIWebViewSingleton.UrlRequest);
};
break;
私の UIWebView が Cookie を受け入れない理由について誰か考えがありますか? 私はまだ NSHttpCookieStorage とそれを正しく使用しているかどうかについて混乱しています。
どうもありがとう。