我有两个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中它是空的。
答案 0 :(得分:0)
很简单,在NSURL
文件中创建.h
类型的类属性
然后在- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSURL *url = [NSURL URLWithString:@"folder/file.html" relativeToURL:baseURL];
答案 1 :(得分:0)
在同一个类中,有可能更多次调用方法“webViewDidFinishLoad”,例如每个webview一个???