web-dev-qa-db-ja.com

UIWebViewリンクのクリック

私のアプリでは、特定のHTMLページがWebビューに読み込まれています。 「ニューロン」のような特定のラベルをクリックする必要があり、その説明を別のビューに表示する必要があります。 Webviewでラベルのクリックとクリックされたラベルを取得するにはどうすればよいですか?

30
PgmFreek

「ラベル」とは「リンク」を意味しますか?その場合は、UIWebViewにデリゲートを与え、webView:shouldStartLoadWithRequest:navigationTypeを実装します。これは、ユーザーがUIWebViewのリンクをタップするたびに呼び出されます。

35
matt

デリゲートを使用してナビゲーションタイプを決定します!

マイスニペット

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{


    if (navigationType == UIWebViewNavigationTypeLinkClicked){

        NSURL *url = request.URL;
        [self openExternalURL:url];//Handle External URL here

    }

    return YES;

}
67
Franky

これを実装するのは簡単です。 WebViewが何かをロードしようとするたびに、

webView:shouldStartLoadWithRequest:navigationType

ハイパーリンクに関連付けられたURLを渡します。ここでは、NSURLRequest引数を解析して、ネイティブコードで実行する処理を行うことができます。

(後で、UIWebViewが実際にリンクをロードしないようにするには、NOを返します)

5
futureelite7