2

私は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™ を実行したい。できるだけ早く実現したいので、すべてが完了するまで待ちたくありません。

4

1 に答える 1