我正在使用mWebView.addJavascriptInterface(this, XXX)
来让java
输入代码herescript在webview上执行。
当我正在浏览的网页发送重定向时,问题就出现了。 我能够在同一个webview中捕获它并显示新的URL,但javascript将无效。
我找到的唯一解决方案是创建一个新的意图,在新的Activity上加载新页面。
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);
}
}