WebView を含むアクティビティがあります。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webView = new WebView(this);
setContentView(webView);
webView.getSettings().setUserAgentString(MY_CLIENT);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setWebViewClient(new MyWebViewClient());
}
私のアクティビティは 2 つのメニュー項目を定義します。これにより、URL1 と URL2 の 2 つの異なる URL が読み込まれます。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_url1:
webView.loadUrl(URL1);
return true;
case R.id.menu_url2:
webView.loadUrl(URL2);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
ただし、URL は、対応するメニュー項目が選択された 2 回目にしか読み込まれません。MyWebViewClient.onPageStarted() と MyWebViewClient.onPageFinished() にブレークポイントを設定すると、最初のクリックで onPageFinished() が呼び出されますが、URL は WebView に読み込まれません。2 回目のクリックで onPageStarted() が呼び出され、続いて onPageFinished() が 2 回呼び出され、URL が WebView に読み込まれます。次に別の URL を読み込もうとすると、プロセスが最初からやり直され、再び 2 回のクリックが必要になります。
ターゲットの Android SDK は 17、最小 SDK は 8 です。Nexus 7 でテストしています。
最初のクリックで WebView に URL を読み込ませるにはどうすればよいですか? また、そのような問題をどのようにデバッグできますか?