WebViewでローディング(画面更新)をハンドリングする

WebViewでの操作をハンドリングする方法はいくつかありますが、画面のロードをハンドリングするには
WebViewClient#shouldOverrideUrlLoading を使います。

下記はWebView内のリンクをクリックした場合など、画面のロードが始まった時にToastを表示します。

WebView webView = (WebView) findViewById(R.id.web);

webView.setWebViewClient(new WebViewClient() {
	public boolean shouldOverrideUrlLoading(WebView view, String urlStr) {
		// 特定のURLの場合、ダイアログを表示する等
		Toast toast = Toast.makeText(WebViewActivity.this, "ハンドリング",
				Toast.LENGTH_SHORT);
		toast.show();

		return false;
	}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.google.co.jp");

クリックされたリンクの内容によって画面のロードをキャンセルする場合や、アプリを起動するなど、処理を変える場合などに使えそうです。

shouldOverrideUrlLoadingから別のActivityやアプリを起動する場合は「true」を返すと良いと思います。
「false」を返すとWebView内にロードした結果を表示します。

WebViewにはアプリ側からJavaScriptをハンドリングする方法があるなど、柔軟にアプリならではの処理が組み込めるようになっています。

また時間のある時に記事にしようと思います。