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をハンドリングする方法があるなど、柔軟にアプリならではの処理が組み込めるようになっています。
また時間のある時に記事にしようと思います。