Anaroid WebView详解大全

时间:2021-08-02 21:34:21

资源描述:

1.android提供了webView控件专门用来浏览网页。
然后在程序中装载webView控件,设置属性,比如:颜色、字体、要访问的网址等。通过loadUrl方法设置当前webView需要访问的网址。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。

2.下面是设置一些常用属性、状态的方法
WebSettings常用方法:
setAllowFileAccess 启用或禁止WebView访问文件数据
setBlockNetworkImage 是否显示网络图像
setBuiltInZoomControls 设置是否支持缩放
setCacheMode 设置缓冲的模式
setDefaultFontSize 设置默认的字体大小
setDefaultTextEncodingName 设置在解码时使用的默认编码
setFixedFontFamily 设置固定使用的字体
setJavaSciptEnabled 设置是否支持Javascript
setLayoutAlgorithm 设置布局方式
setLightTouchEnabled 设置用鼠标激活被选项
setSupportZoom 设置是否支持变焦

WebViewClient常用方法:
doUpdate VisitedHistory 更新历史记录
onFormResubmission 应用程序重新请求网页数据
onLoadResource 加载指定地址提供的资源
onPageFinished 网页加载完毕
onPageStarted 网页开始加载
onReceivedError 报告错误信息
onScaleChanged WebView发生改变
shouldOverrideUrlLoading 控制新的连接在当前WebView中打开

WebChromeClient常用方法:
onCloseWindow 关闭WebView
onCreateWindow 创建WebView
onJsAlert 处理Javascript中的Alert对话框
onJsConfirm处理Javascript中的Confirm对话框
onJsPrompt处理Javascript中的Prompt对话框
onProgressChanged 加载进度条改变
onReceivedlcon 网页图标更改
onReceivedTitle 网页Title更改
onRequestFocus WebView显示焦点

3. android webView相关知识
@下面的代码通过loadUrl方法设置当前webView需要访问的网址:
mWebView=(WebView) findViewById(R.id.WebView01);
mWebView.loadUrl(“http://www.sogou.com”);
@在android中专门通过WebSettings来设置WebView的一些属性、状态等。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置:
WebSettings webSettings=mWebView.getSettings();//取得对象
WebSettings和WebView都在同一个生命周期中存在,当WebView被销毁后,如果再使用WebSettings,则会抛出异常。
@使用WebViewClient来完成在应用程序中自定义网页浏览程序:
WebViewClient是辅助WebView处理各种通知、请求等事件的类。通过WebView的setWebViewClient方法指定WebViewClient对象。
WebView可以通过覆盖WebViewClient方法来辅助WebView浏览网页:
public Boolean shouldOverrideUrlLoading
(WebView view,String url){view .loadUrl(url);return true;}

4. android webView实例
实例中使用EditText输入网址,用Button来确认连接,用webView显示网页内容。
这里使用了WebViewClient来辅助WebView处理一些事件,因此我们显示的网页都是在一个WebView控件中。可以通过goBack和goForward方法设置前进和后退,先检查是否可以前进和后退:
if((keyCode==keyEvent.KEYCODE_BACK)&&mWebView.canGoBack())
{
mWebView.goBack()//返回前一个页面
return true;
}
例子中,通过自制浏览器访问一个包含javascript对话框的html页面。通过点击界面上的“警告,提醒对话框”按钮、“带选择的对话框”按钮、“要求用户输入的对话框”按钮,界面分别会弹出对话框“这是一个警告对话框”、“更多信息请到我的博客去”正常按钮/取消按钮、“输入对话框”正常按钮/取消按钮、一个跳转页面。Js html页面在代码包的根目录下(dialog.html)。
我们通过setWebChromeClient方法为WebView设置一个WebChromeClient对象,辅助WebView处理js对话框,监听按钮事件,然后通过confirm和cancel方法将我们的操作传递给js处理。
package com.yarin.android.Examples_08_06;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.graphics.Bitmap;
……
public class Activity01 extends Activity
{
private final String DEBUG_TAG = "Activity01";
private Button mButton;
private EditText mEditText;
private WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mEditText = (EditText) findViewById(R.id.EditText01);
mWebView = (WebView) findViewById(R.id.WebView01);
//设置支持JavaScript脚本
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
//设置可以访问文件
webSettings.setAllowFileAccess(true);
//设置支持缩放
webSettings.setBuiltInZoomControls(true);
//设置WebViewClient
mWebView.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
}
});

Anaroid WebView详解大全的更多相关文章

  1. HTTP 状态响应码 意思详解/大全

    HTTP 状态响应码 意思详解/大全 转:http://blog.csdn.net/helin916012530/article/details/29842595 HTTP状态码(HTTP Statu ...

  2. 最全面的Android Webview详解

    转自:最全面的Android Webview详解 前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图  那么这种该如何实现呢?其实这是 ...

  3. C#数字图像处理算法详解大全

    原文:C#数字图像处理算法详解大全 C#数字图像处理算法详解大全 网址http://dongtingyueh.blog.163.com/blog/#m=0 分享一个专业的图像处理网站(微像素),里面有 ...

  4. android WebView详解,常见漏洞详解和安全源码

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  转载请注明出处:http://blog.csdn.net/se ...

  5. MySQL 索引详解大全

    什么是索引? 1.索引 索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据.对于索引,会保存在额外的文件中. 2. 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结 ...

  6. db2常用命令(详解)大全

    近一年来在项目开发中使用到了IBM的DB2 9.1的数据库产品,跟Oracle相比一些命令有很大的区别,而它最大的功能是支持      xml存储.检索机制,通过XPath进行解析操作,使开发人员免于 ...

  7. java Log4j日志配置详解大全

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  8. 网络-02-端口号-linux端口详解大全

    端口详解 1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器  2 compressnet Management Utility compr ...

  9. webview 详解

    [原文] 1. 打开网页时不调用系统浏览器, 而是在本WebView中显示: mWebView.setWebViewClient(new WebViewClient(){ @Override publ ...

随机推荐

  1. Android自定义九宫格图案解锁

    转自: http://blog.csdn.net/shineflowers/article/details/50408350

  2. AngularJS包含

    1.在HTML中包含HTML文件:在HTML中,目前还不支持包含HTML文件的功能: 2.服务端包含:大多数服务端脚本都支持文件功能(SSI),使用SSI,你可以在HTML中包含HTML文件,并发送到 ...

  3. 《30天自制操作系统》14_day_学习笔记

    harib11a--harib11c: 继续测试性能:我们在harib10h中进行了定时链表结构的改进“消除了移位处理”.下面我们设定490个定时器(它们都被设定启动50天才超时)来测试一下改进的效果 ...

  4. [J2ME] 基本框架框架

    import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import jav ...

  5. 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS

    矩阵和图像的操作 (1)cvSetIdentity函数 其结构 void cvSetIdentity(//将矩阵行与列相等的元素置为1.其余元素置为0 CvArr* arr//目标矩阵 ); 实例代码 ...

  6. 测试工作中ADB命令实战

    作者:TT,<测试架构师>微信公众号作者 大家能点击进来,说明还是对ADB有所了解或听说过的,可能也会比较熟练的掌握了这些命令,下面描述如有不对的地方,欢迎指正和交流学习,请多指教! 一. ...

  7. MySQL触发器更新和插入操作

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...

  8. APP应用测试技巧

    分页数据 测试分页数据,必须要满足一页数据,根据APP设置的分页数据准备一些测试数据. 满足一页数据的时候上下滑动瀑布流时, 页面数据是否会正常展示: 是否会出现第二页请求不到数据: 是否会出现重复加 ...

  9. 自制DbHelper实现自动化数据库交互

    之前一直对apache的DbUtils很好奇,也很佩服其中的设计上的智慧.于是就自己模拟实现了一个更加简便的小框架.我们只需要在配置文件中写上数据库层面的连接信息,就可以随心所欲的实现自己的需求了. ...

  10. Intent传值的学习

    今天学习了Intent传值的过程,有点安卓编程经验的都知道,Intent可以实现页面的跳转,可以从一个activity跳转到另一个activity,这个名义上说是界面跳转,其实这句话现在觉得说的很不严 ...