Phonegap ios从MainViewController.m类更改URL

时间:2014-12-03 16:26:48

标签: objective-c cordova

我点击它时MainViewController.xib中有一个按钮我在MainViewController.m中有一个方法需要更改webview的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];
}

但我进入了这种方法的循环......

如何通过浏览webview上的按钮来更改网址?

1 个答案:

答案 0 :(得分: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];
    }
} 

}

删除第二个选项。