UIWebViewDelegateを使うと、UIWebViewが処理を行うタイミングで指定した処理が実行される。ロード中を表すインジケーターを表示したり、外部ドメインへのアクセスを禁止するために利用する。
- webView:shouldStartLoadWithRequest:navigationType:
画面遷移が発生する「前」に呼び出される。NOを返せば、画面遷移はキャンセルされる。このメソッドを使うと、Webページ内のJavaScriptからiPhoneアプリ(Objective-C)にデータを渡すことができる。(JavaScirptでlocation.href=’data://mydata’などとして画面遷移を発生させ、Objective-C側データを受け取って画面遷移はキャンセルすればよい。)
- webViewDidStartLoad:
Webページのロードが始まったタイミングで実行される。ロード中を表すインジケータを表示するために使う。
- webViewDidFinishLoad:
Webページのロードが完了したタイミングで実行される。ロード中を表すインジケータを削除するために使う。
- webView:didFailLoadWithError:
ロードできなかった場合に実行される。エラー発生時の代替画面の表示や、アラートの表示に使う。