2012-05-01 6 views
0

My UIWebview не сохраняет файлы cookie вообще. Он застрял в режиме cookieless, и в результате веб-страница вместо этого помещает информацию cookie в url.UIWebview не получает файлы cookie

Вот что я делаю. У меня есть синглтон для моего UIWebview и 4 кнопок UITabBar внизу. Каждая кнопка на вкладке выводит пользователя на другую страницу на сайте. Теперь, когда пользователь перемещается по сайту через веб-просмотр, все в порядке, и сеанс сохраняется. Но второй пользователь нажимает кнопку на вкладке, сеанс сбрасывается.

Я даже установил 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

Являются ли они постоянными кукисами, а не сессионными куки? – Gruntcakes

+0

Я могу проверить это в хроме, и я получаю файл cookie правильно. – apexdodge

ответ

0

Я пошел с этим рабочим обходом, которого было достаточно.

Поскольку cookie находится в URL-адресе, я просто разбираю его и программно помещаю его в URL-адреса, на которые указывают кнопки на панели. Задача решена.

Смежные вопросы