今天在使用webview 进行打开网页的时候,遇到了这样的问题:打开页面之后,点击设备的返回键,页面撤销,但是并没有会退到之前我打开网页之前的页面,而是出现了一个空白的屏幕,需要在点击一次返回才能会退到之前的页面,所以这里采用了WebViewClient 这个类,成功解决了上述的问题。
1
private class webClient extends WebViewClient
{
/**
* @see android.webkit.WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView, java.lang.String)
*/
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
2
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.webview_layout);
Bundle bundle = getIntent().getExtras();
url = bundle.getString("url") ;
webView = (WebView) findViewById(R.id.webview);
//设置WebView属性,能够执行Javascript脚本
webView.getSettings().setJavaScriptEnabled(true);
//加载需要显示的网页
webView.loadUrl(url);
//设置Web视图
webView.setWebViewClient(new webClient());
}
注意,这里实例化了一个webClient类实例,然后在这个类当中继承webViewClient 类,重写当中的方法。问题解决。
Extral :
//wView.loadUrl("file:///android_asset/index.html");
-----打开本包内asset目录下的index.html文件
//wView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");
-----打开本地sd卡内的index.html文件
//wView.loadUrl("http://wap.baidu.com");
-----打开指定URL的html文件