2012-05-01 3 views
0

UIWebview에서 쿠키를 전혀 저장하지 않습니다. 쿠키가없는 모드에서 멈춰서 결과적으로 웹 페이지가 대신 쿠키 정보를 URL에 넣습니다.UIWebview가 쿠키를받지 못합니다.

내가하는 일은 다음과 같습니다. 내 UIWebview에 대한 싱글 톤과 하단에 4 개의 UITabBar 버튼이 있습니다. 각 탭바 버튼은 사용자를 사이트의 다른 페이지로 안내합니다. 이제 사용자가 webview를 통해 사이트를 탐색 할 때 모든 것이 잘되고 세션이 지속됩니다. 그러나 사용자가 두 번째로 탭바 버튼을 클릭하면 세션이 재설정됩니다.

쿠키를 항상 허용하도록 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에 넣습니다. 문제 해결됨.

관련 문제