IOS使用变量take in方法webViewDidFinishLoad

时间:2014-10-04 18:00:06

标签: ios xcode webview uiwebview webviewdidfinishload

我有两个webView,在第一个我加载一个主机名,当webViewDidFinishLoad我用这个方法获取当前url的一部分时:

//Method that take a part of currentUrl of a webView
   - (NSString *) webViewGetLocation {
   NSString *html = [dnsWebView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];

   if ([html rangeOfString:@"Account"].location != NSNotFound) {
      //Take loaded ip
      NSString *currentURL = [dnsWebView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
      NSLog(@"IP TAKEN: %@", currentURL);

      //Do substring to find part of ip, until the port
      NSString *ip = [[self splitString: currentURL key: @"/login"] objectAtIndex: 0];
      NSLog(@"IP AND PORT: %@", ip);
   }
   return ip;
}

此时一切都好。

现在在第二个webView中,我加载一个应该由ip组成的URL,我在之前的方法中加入,第二个部分不会更改。

我的问题是:我怎么能拿到那个url(返回ip),因为我已经在方法“webViewDidFinishLoad”中启动了没有返回值的方法“webViewGetLocation”???

- (void)webViewDidFinishLoad:(UIWebView *)webView {
   [self webViewGetLocation];
}

我尝试在appDelegate变量中保存方法“webViewGetLocation”的返回ip,但是在viewDidLoad中它是空的。

2 个答案:

答案 0 :(得分:0)

很简单,在NSURL文件中创建.h类型的类属性 然后在- (void)webViewDidFinishLoad:(UIWebView *)webView { NSURL *url = [NSURL URLWithString:@"folder/file.html" relativeToURL:baseURL];

中进行设置

答案 1 :(得分:0)

在同一个类中,有可能更多次调用方法“webViewDidFinishLoad”,例如每个webview一个???