我对 iOS 开发非常陌生,所以请保持温和。
我知道webViewDidFinishLoad
每个<iframe>
加上原始html页面都会触发。
我正在尝试查找导致webViewDidFinishLoad
. 据我所知,我只能访问 webView.request.mainDocumentURL。
我觉得这很令人困惑。在该shouldStartLoadWithRequest
方法中,也为每个<iframe>
原始 html 请求触发,您可以访问相关 URL,无论是 iframe 还是父页面。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"Parent page request: %@", request.mainDocumentURL);
NSLog(@"Actual URL request: %@", [request URL]); // This returns what I want.
return YES;
}
第一个日志语句将输出 url。
然而,内webViewDidFinishLoad
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSURLRequest* request = [webView request];
NSLog(@"Parent page request: %@", request.mainDocumentURL);
NSLog(@"Request outputs the parent, not the iframe: %@", [request URL]);
// how do I access the <iframe> url?
}
帮助我 StackOverflow。我的google-fu很弱,你的智慧很强大。
编辑:我应该清楚这个目标。当父页面的加载事件触发时,我想 Do Stuff™,而不是 iframe。我希望这尽快发生,所以我不想等到一切都完成。