Android成长日记-WebView使用

在App中有时候会看到一些页面是以网页的形式展示,其原理就是运用了WebView,下面予以讲述WebView

1. 使用Intent调用系统浏览器或者第三方浏览器打开网页

调用系统浏览器打开页面

Uri uri=Uri.parse(url); //url为网页的地址

Intent intent=new Intent(Intent.ACTION_VIEW,uri);

startActivity(intent);

2. 使用WebView打开页面

Step one:在layout文件夹中新建webView的控件

Step two:在使用WebView的时候需要首先覆盖系统浏览器或者第三方浏览器打开网页

//webView加载web资源

webView.loadUrl (url);

/*

* 覆盖webView默认通过第三方或者系统浏览器打开网页的行为,使得网页可以在webView中打开

*/

webView.setWebViewClient(new WebViewClient(){

//webViewClient帮助webView去处理一些控制和请求通知

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

//返回值为true的时候控制网页在webView中打开,false则用系统浏览器或第三方浏览器打开

view.loadUrl(url);

return true;

}

});

Step Three:是否启用JavaScript[s1]

//启用JavaScript

WebSettings settings=webView.getSettings();

settings.setJavaScriptEnabled(true);

Step Four:通过物理按键的返回键予以返回上一页面

//改变物理按键--返回的逻辑

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode==KeyEvent.KEYCODE_BACK)

{

webView.goBack();

return true;

}

else

{

System.exit(0);//退出程序

return false;

}

Step Five:为了增加页面的交互性,可以加入进度条的显示

webView.setWebChromeClient(new WebChromeClient(){

@Override

public void onProgressChanged(WebView view, int newProgress[s2] ) {

if(newProgress==100)

{

//网页加载完毕,关闭progressDialog

closeDialog();

}

else

{

//网页正在加载,打开progressDialog

openDialog(newProgress);

}

}

private void closeDialog() {

if(dialog!=null&&dialog.isShowing())

{

dialog.dismiss();//消失dialog对话框

dialog=null;

}

}

private void openDialog(int newProgress) {

if(dialog==null)

{

dialog=new ProgressDialog(MainActivity.this);

dialog.setTitle("正在加载");

dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

dialog.setProgress(newProgress);//显示进度

dialog.show();

}

else

{

dialog.setProgress(newProgress);

}

}

});

}


[s1]为了提高页面的运行速度,可以优先使用缓存加载页面

//webView加载页面优先使用缓存加载

settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

[s2]newProgress:显示网页的加载进度,<int>类型

原文地址:https://www.cnblogs.com/boy1025/p/4301991.html