2013-02-25 2 views
0

Мне нужно сделать простой UIWebView для iPad, для случая, когда пользователи войдут в систему со своими учетными записями и смогут видеть фиксированную общедоступную страницу Facebook и иметь возможность прокручивать эту страницу, комментировать или как сообщения но не сможет перейти в другое место, кроме этой страницы. Поэтому я используюОграничить UIWebView, чтобы остаться на странице Facebook

-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
    { 
     NSURL *url = request.URL; 
     NSString *urlString = url.absoluteString; 
     NSRange range = [urlString rangeOfString:@"http://m.facebook.com/groups/10621329941138"]; 
     if (range.location != NSNotFound) 
     { 
      return YES; 
     } 
     else 
     { 
      return NO; 
     } 
    } 

Каждый раз, когда пользователь заканчивает свою сессию, хозяйка выйдет с этой страницы на страницу входа. После некоторых экспериментов я застрял с несколькими вопросами:

  • При первой загрузке я получаю «Запрашиваемая Вами страница не может быть отображена прямо сейчас ...» http://uaimage.com/image/5a0cccea
  • Выход каждый раз вызвать пустой белый экран (проблема с. php?)
  • Если я заблокирую все ссылки на этой странице, как я могу разрешить выход из системы в конец сеанса?

Заранее благодарен!

ответ

1

Попробуйте это:

if ([url.host.lowercaseString rangeOfString:@"facebook"].location == NSNotFound) { 

    // Don't go since we're somewhere else now 
    return NO; 

} else { 

    // We can go here 
    return YES; 

} 
+0

Тот же эффект, как и раньше. у меня есть эта «запрашиваемая страница ...». что это может быть? – Alex

+0

кажется, я имел капитал F, попробуйте с нижним регистром «facebook» и посмотрите, поможет ли это ... – jjv360

+0

Даже если это сработает, это может быть довольно опасно, так как любой другой сайт может поместить ключевое слово «facebook» на своем пути, и это позволит продолжить с загрузкой. – trumpetlicks

1

я сделал что-то вроде этого раньше, и я хотел бы предложить что-то вроде

return [urlString hasPrefix:@"http://m.facebook.com/"]; 

Это потенциально более безопасным вариантом, а также, поскольку он ограничивает к домену против просто проверка ключевого слова для слова facebook в любом месте пути полного URL-адреса.

Вы можете получить немного больше фантазии и проверить «facebook.com» в любом месте после «http: // и непосредственно перед вторым» /. Возможно, также можно использовать метод baseURL для NSURL, чтобы помочь здесь .

Кроме того, вы можете быть абсолютно уверены, что у вас есть UIWebView настройки делегата правильно?

+0

Да, делегат настроен – Alex