这是我的代码
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView webView = (WebView)findViewById(R.id.webView);
// Assign webclient.
webView.setWebViewClient(new WebViewClient( ) {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.d("TAG", url);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.d("TAG", "failed: " + failingUrl + ", error code: " + errorCode + " [" + description + "]");
}
});
webView.loadUrl("http://m.vooglemoogle.com" );
}
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
03-29 13:40:27.005: DEBUG/TAG(10948): …Run Code Online (Sandbox Code Playgroud) 我有一个javascript函数'gotoMainPage()'
function gotoMainPage( ) {
window.location.href = "main/main.do";
}
Run Code Online (Sandbox Code Playgroud)
现在,shouldOverrideUrlLoading(..)如果gotoMainPage( )由于"直接用户交互"而执行,则会调用WebViewClient ,例如用户单击此div:
<div.... onclick='gotoMainPage();'/>
但是,如果通过setTimeout( gotoMainPage, 100 );或通过XMLHttpRequest回调执行,shouldOverrideUrlLoading(..)则永远不会调用,但请求的页面会被加载到webview.
我错过了一个明显的解释还是这个错误?
任何人?