我mWebView.addJavascriptInterface(this, XXX)
用来让java输入代码herescript在webview上执行。
当我正在浏览的网页发送重定向时,问题就出现了。我能够捕获它并在同一个 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);
}
}