calss のコールバック ハンドルを作成webChromeClient()し、ボタンをリッスンする方法は? 私が抱えている問題は、buttonとedittextフィールドがあり、どちらも と がそのRelativeLayout上に配置されているため、表示された Web ページの内容が と の両方とwebView混ざることを避けることができるということです。フィールドを持つ目的は、ユーザーが Web ページ名を入力できるようにすることです。を持つ目的は、ユーザーが入力した Web ページを起動することです。また、コールバック内でクラスとトーストを使用して、Web ページの読み込みが完了するたびに通知します。しかし、フィールドで指定された Web ページを起動するために を押すたびに、コールバックbuttonedittextedittextbuttonwebClientViewonPageFinishedbuttonedittextonPageFinishWeb ページの読み込みが完了する前であっても、常に呼び出されます。たとえば、 で Web サイトのアドレスを指定してを繰り返しedittext押すbuttonと、 を押した回数だけトーストが出力されますbutton。私がここに投稿した私の質問を参照してください。これはほぼ同じ問題に関するものです。それは私の問題を部分的に解決したにもかかわらず、アプリの要求をコーディングしていたときに、ここで参照した質問に対する答え が継ぎ目であり、十分ではないことに気付きました. webChromeViewクラスを使用してその問題を解決する方法はありますか? そしてどうやって?
Java コード:
OnClickListener btnGoListener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
webView00.loadUrl(etUrl.getText().toString());
webView00.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
Toast.makeText(getBaseContext(), "Loading Finished 2", Toast.LENGTH_LONG)
.show();
}
});
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_web_page00);
webView00 = (WebView) findViewById(R.id.webView00);
btnGo = (Button) findViewById(R.id.go_btn);
etUrl = (EditText) findViewById(R.id.url_edittext);
webView00.getSettings().setJavaScriptEnabled(true);
webView00.setWebChromeClient(new myWebChromeClient());
btnGo.setOnClickListener(btnGoListener);
webView00.loadUrl("http://google.com");
webView00.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
Toast.makeText(getBaseContext(), "Loading Finished 1", Toast.LENGTH_LONG)
.show();
}
});
}
public class myWebChromeClient extends WebChromeClient {
}