Проблема открытия страницы в разных UIWebViews с помощью Javascript - PullRequest
0 голосов
/ 28 июля 2010

У меня есть приложение для ipad, большинство функций которого - веб-приложение. Пользовательский интерфейс - это всего лишь три UIWebView, которые загружают страницы. Каждая ссылка, по которой щелкают, перехватывается, и у меня есть переменная запроса в URL под названием «iPadTarget».

EX: http://www.somedomain.com/blah.asp?iPadTarget=2

Приведенный выше код откроется во втором веб-просмотре, потому что iPadTarget = 2.

Вот код, который выполняет это:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *url = [request URL];

    //Extract the value from request variable 'iPadTarget' in url string.
    NSString *test = [url query];
    int index = [test rangeOfString:@"iPadTarget="].location;   
    int target = index + 11;
    char c = [test characterAtIndex:target];
    NSLog(@"%c",c);

    if (navigationType == UIWebViewNavigationTypeLinkClicked || navigationType == UIWebViewNavigationTypeFormSubmitted || navigationType == UIWebViewNavigationTypeOther) {
        if (c == '1') {
            [viewOne loadRequest:request];
            return NO;
        } else if (c == '2') {
            [viewTwo loadRequest:request];
            return NO;
        } else if (c == '3') {
            [viewThree loadRequest:request];
            return NO;
        }
    } 
    return YES;
}

Моя проблема заключается в следующем: у меня есть форма с событием onclick в кнопке:

<button onclick='window.open("someotherpage.asp?iPadTarget=2");window.open("someotherpage.asp?iPadTarget=3");'>Button</button>

Этот код ДОЛЖЕН открыть одну и ту же страницу как во втором, так и в третьем UIWebView. Тем не менее, он ничего не делает, и когда я смотрю на вывод консоли, он печатает символ бесконечно.

Извините за длинный вопрос, я буду признателен за любую помощь!

1 Ответ

0 голосов
/ 28 июля 2010

Вы уверены, что это только делегат первого UIWebView?

Что бы вы ни делали, включите еще несколько подробных журналов.Т.е.

NSLog(@"request for webview %x, url=%@", ... );

, а также

NSLog(@"returning NO because ...");

для поиска причины возникновения петли.

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