UIWebView & ShouldStartLoadWithRequest - PullRequest
       3

UIWebView & ShouldStartLoadWithRequest

0 голосов
/ 20 апреля 2011

Я установил приложение, которое использует UIWebView. UIWebView используется для отображения текста в формате CSS. В тексте есть ссылки (a href = ...). Формат href выглядит следующим образом: tags.tagname

Когда пользователь щелкает ссылку, я хотел бы перехватить запрос и использовать loadHTMLString на основе содержимого HREF.

Я успешно проанализировал URL-адрес, но не могу понять, как указать веб-представлению не загружать запрошенный href и загрузить нужную мне строку.

Я попробовал следующее в ShouldStartLoadWithRequest:

genHTML=[self genTagPage:parsedString]; // a string declared earlier
[self.noteHTML loadHTMLString:genHTML baseURL:nil];
return NO;

Но когда код выполняется, я получаю следующую ошибку:

2011-04-19 22:39:21.088 TestApp[27026:207] *** -[_PFArray release]: message sent to deallocated instance 0xaa3cf40

genHTML заполняется правильными данными, поэтому я не знаю, как действовать дальше.

Спасибо.

1 Ответ

3 голосов
/ 20 апреля 2011

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

<a href="somewhere.html" onClick="doSomething(); return false">

Проверьте quirksmode для более подробной информации.

Edit: Перечитайте исходный код, и кажется, что у вас бесконечный цикл. shouldStartLoadWithRequest вызывается один раз, когда они нажимают на ссылку, а затем бесконечно в строке loadHTMLString Выполнение вызова по условию навигационного типа должно решить вашу проблему:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if(navigationType==UIWebViewNavigationTypeLinkClicked)
    {
        genHTML=[self genTagPage:parsedString]; // a string declared earlier
        [self.noteHTML loadHTMLString:genHTML baseURL:nil];
        return NO;
    }
    return YES;
}
...