WebView之2
2015-08-06 21:03
344 查看
首先需要添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
MainActivity:
<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 } }
相关文章推荐
- Android如何跳过小米和魅族手机对Toast的限制
- ios越狱开发随感
- APP应用完美退出的方法的尝试
- Android Service组件
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- android 当屏幕截图,你如何改变屏幕内容,他们俩bitmap将合并的图像被一起显示
- IOS性能优化
- iOS Core Animation详解(四)AutoLayout中的动画
- Android使得手机拍照功能的发展(源共享)
- Cocos2d-x 2.0 自适应多种分辨率
- 由浅入深学习自定义控件(4)-滑动开关slidemenu
- Android复习笔记(14)-自定义控件(1)-滑动开关
- ios7 textViewDidChange代理/通知中修改TextView内容崩溃的原因
- The constructor SimpleAdapter(new View.OnClickListener(){}, List<Map<String,Object>>, ..的解决方法
- ios 设计 切图
- Android DVM
- quick cocos map使用
- Android ListView&异步加载的学习(三)——AsyncTask加载图片&运用Lru算法优化图片加载
- Android Studio配置Github
- ios给图片加水印