安卓控件——WebView

来源:互联网 发布:飞狐软件 编辑:程序博客网 时间:2024/06/07 00:29


public class MainActivity extends Activity {private String url = "http://2014.qq.com/";private WebView webView;private ProgressDialog dialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// Uri uri = Uri.parse(url); //url为你要链接的地址// Intent intent =new Intent(Intent.ACTION_VIEW, uri);// startActivity(intent);init();}private void init() {webView = (WebView) findViewById(R.id.webView);// WebView加载本地资源// webView.loadUrl("file:///android_asset/example.html");// WebView加载web资源webView.loadUrl(url);// 覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在WebVIew中打开webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// 返回值是true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或第三方浏览器去打开view.loadUrl(url);return true;}});// 启用支持JavaScriptWebSettings settings = webView.getSettings();settings.setJavaScriptEnabled(true);// WebView加载页面优先使用缓存加载settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {// newProgress 1-100之间的整数if (newProgress == 100) {// 网页加载完毕,关闭ProgressDialogcloseDialog();} else {// 网页正在加载,打开ProgressDialogopenDialog(newProgress);}}private void closeDialog() {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.setProgress(newProgress);}}});}// 改写物理按键——返回的逻辑@Overridepublic 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);}}


0 0
原创粉丝点击