Android中使用WebView, WebChromeClient和WebViewClient加载网页
在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android 中提供了其很好的支持,
其中webView的一系列用法,比如
webView.getSettings().setJavaScriptEnabled(true); //设置可以使用javascript
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); //设置滚动条风格
webView.setHorizontalScrollBarEnabled(false);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true); //设置可以支持缩放
webView.setInitialScale(25); //为25%,最小缩放等级 ,可以在这里根据需求来设置缩放比例.
webView.setHorizontalScrollbarOverlay(true);
下面是一个例子程序,先帖:
主程序:
public class WebPageLoader extends Activity
02
{
03
final Activity activity = this;
04
@Override
05
public void onCreate(Bundle savedInstanceState)
06
{
07
super.onCreate(savedInstanceState);
08
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
09
setContentView(R.layout.main);
10
WebView webView = (WebView) findViewById(R.id.webView);
11
webView.getSettings().setJavaScriptEnabled(true);
12
webView.getSettings().setSupportZoom(true);
//点击链接在当前browser中响应,而不是新开Android系统browser中响应该链接
13
webView.setWebChromeClient(new WebChromeClient()
14
{
15
public void onProgressChanged(WebView view, int progress)
16
{
17
activity.setTitle("Loading...");
18
activity.setProgress(progress * 100);
19
if(progress == 100){
20
activity.setTitle(R.string.app_name);
21
}
22
}
23
);
24
webView.setWebViewClient(new WebViewClient() {
25
26
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
27
{ // Handle the error
28
29
}
30
31
public boolean shouldOverrideUrlLoading(WebView view, String url)
32
{
33
view.loadUrl(url);
34
return true;
35
}
36
});
37
webView.loadUrl("http://www.sohu.com");
38
}
39
}
而进度条的使用是在new出一个setWebChromeClient后,可以在内部类中写 onProgressChanged事件
在WebView的设计中,不是什么事都要WebView类干的,有些杂事是分给其他人的,这样WebView专心干好自己的解析、渲染工作就行了。WebViewClient 就是帮助WebView处理各种通知、请求事件的,具体来说包括:
WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
判断加载的页面URL地址是否正确:
if(URLUtil.isNetworkUrl(url)==true)
Android中使用WebView, WebChromeClient和WebViewClient加载网页的更多相关文章
- Android中使用WebView, WebChromeClient和WebViewClient加载网页 (能够执行js)
Android中使用WebView, WebChromeClient和WebViewClient加载网页 在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android ...
- android WebView, WebChromeClient和WebViewClient加载网页基本用法
WebView, WebChromeClient和WebViewClient加载网页基本用法 webview是android中的浏览器控件,在一些手机应用中常会用到b/s模式去开发应用,这时webvi ...
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
- 混合开发(一)——WebView开发高级技巧之加载网页以及JavaScript,加载进度条
混合开发(一)--WebView开发高级技巧之加载网页以及JavaScript,加载进度条 现在关于混合开发也越来越多了,很多人喜欢跟随,比如HB,比如RN,其实这东西很早就有这么一个概念了,而且说实 ...
- Android中使用WebView实现全屏切换播放网页视频
首先写布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an ...
- Android中自定义ListView实现上拉加载更多和下拉刷新
ListView是Android中一个功能强大而且很常用的控件,在很多App中都有ListView的下拉刷新数据和上拉加载更多这个功能.这里我就简单记录一下实现过程. 实现这个功能的方法不止一个,Gi ...
- Android中高效的显示图片之一 ——加载大图
在网上看了不少文章,发现还是官方文档介绍最详细,把重要的东西简单摘要出来.详细可看官方文档地址 ( http://www.bangchui.org/read.php?tid=9 ) . 在应用中显示图 ...
- Android中的WebView进行直接加载网页(要注意解决权限问题)
我们都知道Android的网络功能很不错,当然Android中WebView组件也挺不错,可以直接进行加载网页,我们可以把这个看做一个小型的浏览器\ [注]以下的一些内容我翻译了一下文档,可能有些翻译 ...
- Android 中的 WebView实现 Html5 标签网页加载
自Android 4.4起,Android中的WebView开始基于Chromium(谷歌浏览器)支持浏览器的一系列功能,webkit解析网页各个节点,这个改变,使得WebView的性能大幅度提升,并 ...
随机推荐
- ORA-12518,TNS:listener could not hand off client connection
前几天在启动应用的时候,在控制台抛出了此异常信息!很明显是数据库方面的问题,不过具体是什么问题哪?百度了一下,网上关于此问题的信息还是有比较多,从异常的提示中我们也能看到是具体是和客户端的连接相关的问 ...
- Android layout属性大全
第一类:属性值 true或者 false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 ...
- 华为OJ平台——求最大连续bit数
题目描述: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字 输出: 对应的二进制数字中1的最大连续数 思路: ...
- linux下的mysql乱码问题
1,承接上一随笔,因为我用的是rmp的两种反式. rpm -ivh MySQL-server-4.0.14-0.i386.rpm rpm -ivh MySQL-client-4.0.14-0.i386 ...
- sqlmap.config 配置
<?xml version="1.0" encoding="utf-8"?> <sqlMapConfig xmlns="http:/ ...
- 用Grunt搭建基于LESS的前端html开发框架
. 安装Node.js http://nodejs.org/download/ 2. 加速NPM安装 npm install -g cnpm --registry=http://r.cnp ...
- Hbase rest方式获取指定key范围内的值
代码如下: <?php class Monitor_Hbase{ private $rest_host = "http://10.99.90.39:8130/";//rest ...
- SQL Server 之登录
1:SQL Server 是Microsoft 公司推出的关系型数据库管理系统. 安装好后,开始登录. 2:几种登录方式: (1):服务器名称: ①: . :代表本地服务器 ②: local :代表本 ...
- Highcharts 连续的堆积面积图
说明:设置两个柱形图间距为0 Highcharts柱图,设置X轴各Column的间距 plotOption : { column : { // 设置每个柱自身的宽度 ...
- php mkdir函数
if(!is_dir($targetPath)){mkdir($targetPath, 0700); } is_dir 判断目录是否存在 mkdir 不能创建多级目录