Ограничить UIWebview определенными страницами - PullRequest
2 голосов
/ 06 октября 2011

Я пытаюсь создать простое приложение для ipad с UIWebview, которое отображает форму, которую клиент может заполнить ... я хочу ограничить приложение так, чтобы оно позволяло пользователю переходить только по определенным адресам ... (т. е. либо что-то, что позволяет пользователю перейти на определенный адрес .. ИЛИ что-то, что проверяет определенные ключевые слова и позволяет / блокирует их соответствующим образом ..)

Может ли кто-нибудь показать мне, как это делается ..

Примечание: это в основном форма googledocs, и я не хочу позволить пользователю перемещаться от нее ... (пользователь может легко щелкнуть и перейти в другое место)

Спасибо, что прочитали:)

Ответы [ 3 ]

8 голосов
/ 06 октября 2011

В классе, который является вашим UIWebViewDelegate, вы можете использовать что-то вроде этого:

-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = request.URL;
    NSString *urlString = url.absoluteString;

    //Check for your own url. You can use more advanced checking techniques of course :)
    NSRange range = [urlString rangeOfString:@"http://www.yourUrl.com"];
    if (range.location != NSNotFound) 
        return YES;
    else
        return NO;
}
1 голос
/ 06 октября 2011

Использование UIWebViewDelegate метод webView:shouldStartLoadWithRequest:navigationType:

Затем проверьте, по какому URL-адресу загружается UIWebView, и действуйте соответствующим образом.

UIWebViewDelegate Reference

1 голос
/ 06 октября 2011

Вы можете использовать метод делегата

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

, чтобы определить, может ли UIWebView загрузить данную веб-страницу.Хотя это означает, что нужно точно знать, какие страницы разрешены (если их много, это может быть неудобно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...