2014-12-03 18 views
0

我點擊它時在MainViewController.xib中有一個按鈕我在MainViewController.m中有一個方法需要更改webview的url我試圖做到這一點如下:Phonegap ios更改從MainViewController.m的URL類

- (IBAction)buttonPressed 
{ 

    NSString * url = @"http://www.google.com"; 
    NSURL * urlRedirect = [NSURL URLWithString:url]; 

    NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url] 
               cachePolicy:NSURLRequestUseProtocolCachePolicy 
              timeoutInterval:2000.0]; 
    [self loadRequest:lRequest]; 
    } 

,我得到一個異常

然後我試圖做到這一點在didFailLoadWithError

- (void) webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error 
{ 
    NSString * url = @"https://www.google.com"; 
    NSURL * urlRedirect = [NSURL URLWithString:url]; 


    NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url] 
               cachePolicy:NSURLRequestUseProtocolCachePolicy 
              timeoutInterval:2000.0]; 
    [theWebView loadRequest:lRequest]; 
} 

,但我得到這個方法的循環...

如何更改web瀏覽器按鈕上的url?

+0

你爲什麼不想用本機代碼來做呢?你可以做一個window.location.href ='http://www.google.es';無論如何,它不是一個好主意,加載在cordova webview上的外部網頁,使用inAppBrowser – jcesarmobile 2014-12-04 07:43:01

回答

1

問題是你正在發送loadRequest消息到你的viewController(self),(你得到一個異常,因爲它不響應這個選擇器)。您需要將此消息發送到您的webView。如果你有一個插座發送它。不過你可以試試:

- (IBAction)buttonPressed 
{ 

NSString * url = @"http://www.google.com"; 
NSURL * urlRedirect = [NSURL URLWithString:url]; 

NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url] 
              cachePolicy:NSURLRequestUseProtocolCachePolicy 
             timeoutInterval:2000.0]; 
     for (UIView *view in self.view.subviews) 
{ 
    if ([view isKindOfClass:[UIWebView class]]) 
    { 
     UIWebView *webView = (UIWebView *)view; 
     [webView loadRequest:lRequest]; 
    } 
} 

} 

刪除您第二個選項。

+0

其工作,謝謝:) – 2014-12-04 07:11:08