最近webViewを作成するために、webViewClientを使用していました。mWebView.setWebViewClient(new WebViewClient());
しかし、進行状況バーを実装する必要があります。ユーザーがリンクをクリックすると、このプログレス バーが表示されます。ページが完了すると、プログレスバーが非表示になり、webView が表示されます。thisとthisに関しては、 WebChromeClient を追加しました。しかし、最初の URL をロードしますが、Web ページ内のボタンをクリックすると、ダイアログが開き、どのアプリケーションで URL を開くかを尋ねられます。
メソッドをオーバーライドする必要があることを読みましたshouldOverrideUrlLoading()
。しかし、「shouldOverrideUrlLoading」をオーバーライドできないというエラーが表示されますWebChromeClient
。
プログレスバーと webView があり、同じ webView 内で新しい URL を開く例を挙げていただければ幸いです。
public class WebActivity extends Activity {
WebView mWebView;
ProgressBar mProgress;
Context mContext;
ProgressBar mProgressBar;
@Override
public void onCreate(Bundle savedInstanceState) {
this.mContext = getApplicationContext();
super.onCreate(savedInstanceState);
setContentView(R.layout.web);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebChromeClient(new myWebChromeClient());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setUserAgentString("myApp");
mProgressBar = (ProgressBar) findViewById(R.id.webProgressBar);
mProgressBar.setMax(100);
}
public class myWebChromeClient extends WebChromeClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
//WebActivity.this.setValue(newProgress);
super.onProgressChanged(view, newProgress);
}
}
}