2012-05-01 83 views
0

我的UIWebview根本沒有保存餅乾。它被卡在無Cookie模式,因此,網頁將Cookie信息放入網址中。UIWebview沒有得到餅乾

這是我在做什麼。我的UIWebview和底部有4個UITabBar按鈕。每個標籤欄按鈕都會將用戶帶到網站上的其他頁面。現在,當用戶通過webview瀏覽本網站時,一切都很好,會話仍然存在。但第二個用戶點擊一個tabbar按鈕,會話被重置。

我甚至將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感到困惑,如果我正確使用它。

非常感謝。

+0

它們是持久性cookie而不是會話cookie? – Gruntcakes

+0

我可以在鉻合金中檢查出來,並且正確得到了餅乾。 – apexdodge

回答

0

我用這種解決方法就足夠了。

由於cookie是在url中,我只是解析出來,並以編程方式將它放入tabbar按鈕指向的url。問題解決了。