私はmWebView.addJavascriptInterface(this, XXX)
JavaがWebビューでコードを入力できるようにするために使用しています。
閲覧している Web ページがリダイレクトを送信するときに問題が発生します。同じ Web ビューに新しい URL を表示してキャプチャすることはできますが、javascript は機能しません。
私が見つけた唯一の解決策は、新しいページを新しいアクティビティにロードする新しいインテントを作成することです。
public class QBrowser extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.qbrowser_main);
mWebView = (WebView) findViewById(R.id.webview);
webSettings.setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new MyWebChromeClient());
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// BEGIN: THE WORK AROUND I DONT LIKE
Intent intent = new Intent("com.bcnquark.client.qbrowser.QBROWSER");
intent.putExtra("URL", url);
startActivity(intent);
finish();
// END:THE WORK AROUND I DONT LIKE
return true;
}});
Intent intent = getIntent();
String url = intent.getStringExtra("URL");
mWebView.addJavascriptInterface(this, "XXXX");
}
mWebView.loadUrl(url);
}
}