<uses-permission android:name="android.permission.INTERNET" />
public class WebActivity extends Activity {
private WebView webView;
private ProgressDialog progressDialog;
final String url = "https://www.baidu.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
// 调到外部浏览器加载
// Uri uri = Uri.parse(url);
// Intent intent = new Intent(Intent.ACTION_VIEW,uri);
// startActivity(intent);
init();
}
private void init(){
webView = (WebView)findViewById(R.id.webView);
//加载本地网页--assets
// webView.loadUrl("file:///android_asset/baidu.html");
//加载url
webView.loadUrl("https://www.hao123.com");
//覆盖webview默认通过第三方或者系统浏览器打开网页的行为
webView.setWebViewClient(new HelloWebViewClient ());
//webviewclinet帮助webview除了一些页面的处理
webView.setWebViewClient(new HelloWebViewClient());
//开启js
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 newProgress) {
// super.onProgressChanged(view, newProgress);
System.out.print("newprogress:"+newProgress);
if (newProgress == 100){
//网页加载完毕
if (progressDialog != null&&progressDialog.isShowing()){
progressDialog.dismiss();
progressDialog = null;
}
}else {
//网页正在加载,打开ProgressBar
//初始化
if (progressDialog == null){
progressDialog = new ProgressDialog(WebActivity.this);
//显示风格
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//标题
progressDialog.setTitle("测试");
//最大进度
progressDialog.setMax(100);
progressDialog.show();
}else {
//设置进度
progressDialog.setProgress(newProgress);
}
}
}
});
}
//Web视图
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
//false -- 自带浏览器 true -- 第三方
return false;
}
}
//改写物理返回键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK){
Toast.makeText(this,webView.getUrl(),Toast.LENGTH_SHORT).show();
if (webView.canGoBack()){
webView.goBack();
return true;
}else {
System.exit(0);//退出程序
// finish();//退出页面
}
}
return super.onKeyDown(keyCode, event);
}
}
<