博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebView之2
阅读量:6647 次
发布时间:2019-06-25

本文共 2622 字,大约阅读时间需要 8 分钟。

首先需要添加权限:

<uses-permission android:name="android.permission.INTERNET"/>  

MainActivity:

package com.wyl.webview;import android.app.Activity;import android.app.ProgressDialog;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {	WebView webview;	ProgressDialog dialog;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		init();	}	public void init() {		webview = (WebView) findViewById(R.id.webview01);		webview.loadUrl("http://www.baidu.com");		webview.setWebViewClient(new WebViewClient() {			@Override			public boolean shouldOverrideUrlLoading(WebView view, String url) {				view.loadUrl(url);				return true;// 用webview打开,			}		});		WebSettings settings = webview.getSettings();		settings.setJavaScriptEnabled(true);// 允许js		settings.setCacheMode(settings.LOAD_CACHE_ELSE_NETWORK);// 使用缓存		webview.setWebChromeClient(new WebChromeClient() {			@Override			// 这个方法可以检测网页的变化			public void onProgressChanged(WebView view, int newProgress) {				// newProgress 1-100之间的整数				if (newProgress == 100) {					// 网页加载完毕后,关闭进度条progressDialog					closeDialog(newProgress);				} else {					// 网页正在加载,打开dialog					openDialog(newProgress);				}				super.onProgressChanged(view, newProgress);			}			private void closeDialog(int newProgress) {				if (dialog != null && dialog.isShowing()) {					dialog.dismiss();// 取消显示					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,只需要刷新进度就可以					dialog.setProgress(newProgress);				}			}		});	}	@Override	public boolean onKeyDown(int keyCode, KeyEvent event) {		if (keyCode == KeyEvent.KEYCODE_BACK) {			String url = webview.getUrl();			Toast.makeText(MainActivity.this, "返回上一页,wyl," + url,					Toast.LENGTH_SHORT).show();			System.out.println("===toast===");			if (webview.canGoBack()) {				webview.goBack();				return true;			} else {				System.exit(0);// 退出程序			}		}		return super.onKeyDown(keyCode, event);	}	@Override	public void onClick(View v) {		// TODO Auto-generated method stub	}}

  

 

转载地址:http://aputo.baihongyu.com/

你可能感兴趣的文章
如何只显示不同字段值的行?
查看>>
挂载ISO文件
查看>>
DataGridView 经典用法总结(一)
查看>>
Java并发显式锁和显式条件队列
查看>>
云OS可国产替代
查看>>
try-catch 能否监听多线程中的错误?
查看>>
Android使用Token 实现单点登录
查看>>
模拟器可以,但是真机却不行
查看>>
CSS: hover选择器的使用
查看>>
Java消息服务
查看>>
Grid列拖拽、列选择、显示行号
查看>>
自定义的allocator
查看>>
浅谈CSRF漏洞
查看>>
JS----基本数据类型
查看>>
明天考前突击
查看>>
Android中的Handler的机制与用法详解
查看>>
【算法学习笔记】18.暴力求解法06 隐式图搜索2 八数码问题 未启发
查看>>
「小程序JAVA实战」运行微信官方demo(四)
查看>>
jqGrid基本用法与示例
查看>>
spring @Bean注解的使用
查看>>