私はiOS開発に非常に慣れていないので、優しくしてください。
webViewDidFinishLoad
それぞれ<iframe>
に加えて元のhtmlページが起動することを理解しています。
その結果となったリクエストのURLを見つけようとしていますwebViewDidFinishLoad
。私が知る限り、webView.request.mainDocumentURL にしかアクセスできません。
これは当惑します。shouldStartLoadWithRequest
それぞれの元の html リクエストに対しても起動するメソッド内で<iframe>
、問題の 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 を助けてください。私のグーグルフーは弱く、あなたの知恵は強いです。
編集:これの目標を明確にする必要があります。iframe ではなく、親ページの load イベントが発生したときに Do Stuff™ を実行したい。できるだけ早く実現したいので、すべてが完了するまで待ちたくありません。