#objective-c #ios #xcode #ipad #uiwebview
#objective-c #iOS #xcode #iPad #uiwebview
Вопрос:
Я пытаюсь создать простое приложение для ipad с UIWebView, которое отображает форму, которую может заполнить клиент .. что я хочу сделать, так это ограничить приложение, чтобы оно позволяло пользователю перемещаться только по определенным адресам .. (т. Е. Либо что-то, что позволяет пользователю перейти по определенному адресу.. ИЛИ что-то, что проверяет наличие определенных ключевых слов и разрешает / блокирует их по мере необходимости ..)
Не мог бы кто-нибудь, пожалуйста, показать мне, как это делается..
ПРИМЕЧАНИЕ: это в основном форма googledocs, и я не хочу позволять пользователю перемещаться от нее .. (пользователь может легко щелкнуть и перейти в другое место)
Спасибо за чтение 🙂
Ответ №1:
В вашем классе 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;
}
Ответ №2:
Вы можете использовать метод делегирования
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
чтобы определить, может ли UIWebView загружать данную веб-страницу. Хотя это означало бы точное знание того, какие страницы разрешены (если их много, это может быть неудобно).
Комментарии:
1. я читал об этом .. не могли бы вы случайно показать мне, как его использовать .. или, может быть, если вы где-нибудь знаете учебник?
2. Вы устанавливаете некоторый класс в качестве делегата UIWebView и реализуете этот метод. Всякий раз, когда UIWebView хочет загрузить запрос, он вызывает этот метод для делегата. В этом методе вы просматриваете URL-адрес NSURLRequest (request), [URL-адрес запроса], и смотрите, хотите ли вы его авторизовать или нет, если вы возвращаете ДА, если нет, НЕТ.
Ответ №3:
Использовать UIWebViewDelegate
метод webView:shouldStartLoadWithRequest:navigationType:
Затем проверьте, какой URL-адрес загружает UIWebView, и действуйте соответственно.