2012-05-01 18 views
0

私のUIWebviewはクッキーをまったく保存していません。 cookielessモードになってしまい、その結果、代わりにWebページがCookie情報をURLに入れています。UIWebviewはクッキーを取得しません

ここは私がやっていることです。私は自分のUIWebviewのためのシングルトンと、下部に4つのUITabBarボタンを持っています。各タブバーボタンは、ユーザーをサイトの別のページに移動させます。今、ユーザーがwebviewを通してサイトをナビゲートしているとき、すべてがうまくいき、セッションが持続します。しかし、2番目のユーザーがタブバーボタンをクリックすると、セッションはリセットされます。

NSHttpCookieStorageを設定しても、常にクッキーを受け入れることができます。まだ行きません。ここで

は、これは私が押されたボタンに基づいて、ページにどのように変化するかであるの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がクッキーを受け入れていない理由を知りたい人はいますか? NSHttpCookieStorageについて私はまだ混乱しています。

ありがとうございます。

+0

セッションクッキーではなく永続クッキーですか? – Gruntcakes

+0

私はクロムでそれをチェックすることができ、私は正しくクッキーを取得します。 – apexdodge

答えて

0

私はこの回避策で十分でした。

クッキーがURLにあるので、私はそれを解析して、プログラムでタブバーボタンが指すURLに入れます。問題が解決しました。

関連する問題