public class MainActivity extends Activity {
private WebView webView;
private ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web);
init();
}
private void init(){
webView=(WebView)findViewById(R.id.webView);
String url="http://baidu.com";
webView.loadUrl(url);
//覆盖WebView默认打开行为
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView V,String u){
//true 控制在webview中打开
V.loadUrl(u);
return true;
}
//webviewclient 帮助webview去请求页面控制
});
//加载JavaScript
WebSettings webSettings= webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//使用缓存加载
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//用进度条来提示用户等待加载网页
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view,int p){
if(p==100)
{
//加载完成
closeDialog();
}
else{
//正在加载
openDialog(p);
}
}
private void closeDialog(){
if(dialog!=null&&dialog.isShowing()){
dialog.dismiss();
dialog=null;
}
}
private void openDialog(int p){
if(dialog==null){
dialog=new ProgressDialog(MainActivity.this);
dialog.setTitle("正在加载");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setProgress(p);
dialog.show();
}
else {
dialog.setProgress(p);
}
}
});
}
// 让界面可以返回
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_BACK)
{
if(webView.canGoBack()){
webView.goBack();
return true;
}
else
{
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}
}
初学Android,WebView
最新推荐文章于 2023-05-23 15:44:43 发布