Android 使用WebView显示网页
2016-04-21 21:18
671 查看
构建WebView就可以显示Web信息。
因为我觉得这里会讲述很多方式来实现WebView,所以我决定为每一种方式创建一个对应的Activity,MainActivity通过Button可以点击进入对应的Activity。
通过Intent调用系统浏览器
只需要用到3行代码:
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
注:url为我需要访问的网页;activity1.xml需要在Manifest.xml中进行注册。
Activity3.java
效果:
因为我觉得这里会讲述很多方式来实现WebView,所以我决定为每一种方式创建一个对应的Activity,MainActivity通过Button可以点击进入对应的Activity。
通过Intent调用系统浏览器
只需要用到3行代码:
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
注:url为我需要访问的网页;activity1.xml需要在Manifest.xml中进行注册。
package com.example.webview; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class Activity3 extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity3); webView = (WebView) findViewById(R.id.webView1); webView.requestFocus(); String url = "http://www.cnblogs.com/moonlightpoet"; webView.loadUrl(url); webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { webView.loadUrl(url); return true; } }); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false webSettings.setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞 webSettings.setSupportZoom(true);//是否可以缩放,默认true webSettings.setBuiltInZoomControls(true);//是否显示缩放按钮,默认false webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式 webSettings.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题 webSettings.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题 webSettings.setDomStorageEnabled(true);//DOM Storage webSettings.setUserAgentString("User-Agent:Android");//设置用户代理,一般不用 webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); webView.setWebChromeClient(new WebChromeClient() { private ProgressDialog progressDialog; @Override public void onProgressChanged(WebView view, int newProgress) { // newProgress 1 ~ 100 之间的证书 if (newProgress == 100) { // 加载完成,关闭ProgressDialog closeDialog(); } else { // 还在加载,打开ProgressDialog openDialog(newProgress); } super.onProgressChanged(view, newProgress); } private void closeDialog() { if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); progressDialog = null; } } private void openDialog(int newProgress) { if (progressDialog == null) { progressDialog = new ProgressDialog(Activity3.this); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setProgress(newProgress); progressDialog.setTitle("正在加载"); progressDialog.show(); } else { progressDialog.setProgress(newProgress); } } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); return true; } return super.onKeyDown(keyCode, event); } }
Activity3.java
效果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/727d2baa1de9b9adf58d97aa6dfdd1fa.png)
相关文章推荐
- 生成android的keystore文件有以下两种方法:
- Android通过PendingIntent实现消息通知
- Android基础:获取手机联系人工具类
- 最近进行Android移植以及NDK开发的编外心得
- Android如何防止apk程序被反编译
- 学习Android从0开始之ActionBar(活动条)之提高篇
- android pdf阅读开发
- Android基础:MD5加密
- Android中对SD卡的读取与写入
- Android实现点击更换头像
- MTK android配置LCD背光和LED
- android圆形ImageView
- android按返回键和Home键都进入后台
- Android中一个Activity第二次启动时,onCreate()调用setContentView()方法时出错,程序崩溃
- Android 6.0权限管理,sdk>=23请求权限
- Android 发送短信
- Android 打电话程序
- Android屏幕分辨率
- Android坐标系分析
- Android Studio、Java安装及环境变量配置