2010-07-28 49 views
0

我有一個ipad應用程序,其中大部分功能都是一個web應用程序。 UI只是三個加載頁面的UIWebViews。每個被點擊的鏈接都被攔截,並且我在名爲「iPadTarget」的URL中有一個請求變量。使用Javascript在不同的UIWebViews中打開一個頁面的問題

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

上面的代碼將在所述第二web視圖打開,因爲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中。但是,它什麼都不做,當我查看控制檯輸出時,它會無限打印char c。

對不起,冗長的問題,我會感謝任何幫助!

回答

0

您確定這只是第一個UIWebView的代表嗎?

無論你做什麼,包括一些更詳細的日誌記錄。即

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

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

找到循環的原因。

相關問題