android提供了webView控件专门用来浏览网页

使用WebView时,在程序中装载WebView控件,可以把WebView写到布局中,也可以动态New出WebView实例,可以设置属性,比如:颜色、字体、要访问的网址等。通过loadUrl方法设置当前webView需要访问的网址。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。

WebView设置的一些常用属性、状态的方法:

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”);

WebView可以加载本地的资源,通过File协议来加载。

在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;

}

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 API详解的更多相关文章

  1. Android WebView 开发详解(三)

    转载请注明出处   http://blog.csdn.net/typename/article/details/40302351 powered by miechal zhao 概览 Android ...

  2. Android WebView 开发详解(二)

    转载请注明出处  http://blog.csdn.net/typename/article/details/39495409 powered by miechal zhao   概览: Androi ...

  3. Java 8 Stream API详解--转

    原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...

  4. jqGrid APi 详解

    jqGrid APi 详解 jqGrid皮肤 从3.5版本开始,jqGrid完全支持jquery UI的theme.我们可以从http://jqueryui.com/themeroller/下载我们所 ...

  5. hibernate学习(2)——api详解对象

    1   Configuration 配置对象 /详解Configuration对象 public class Configuration_test { @Test //Configuration 用户 ...

  6. 网络编程socket基本API详解(转)

    网络编程socket基本API详解   socket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket ...

  7. 转】Mahout推荐算法API详解

    原博文出自于: http://blog.fens.me/mahout-recommendation-api/ 感谢! Posted: Oct 21, 2013 Tags: itemCFknnMahou ...

  8. dom4j api 详解--XPath 节点详解

    dom4j api 详解 http://871421448.iteye.com/blog/1546955 XPath 节点 http://www.w3school.com.cn/xpath/xpath ...

  9. 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

    原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...

随机推荐

  1. 面试中的Https

    在Http协议中有可能存在信息窃听或身份伪装的安全问题.使用HTTPS通信机制可以有效地防止这些问题. Https Http的缺点 通信使用明文(不加密),内容可能会被窃听. 不验证通信方的身份,因此 ...

  2. c#写的热键注册程序

    玩网页游戏挂机,又不想让别人看见你电脑的运行.所以写了个后台运行的程序. 先谁HotKey注册类,用来调用com组件来显示与隐藏窗体: using System; using System.Colle ...

  3. Perf工具

    前段时间Linux下用nmon监控程序的运行,发现CPU的使用率很高,系统态Sys的比例很高.程序的速度不是很快,怀疑和上面的原因有关. 分别使用perf record,perf report和top ...

  4. Hadoop学习笔记五

    一.uber(u:ber)模式 MapReduce以Uber模式运行时,所有的map,reduce任务都在一个jvm中运行,对于小的mapreduce任务,uber模式的运行将更为高效. uber模式 ...

  5. MySQL系统临时表、用户临时表

    MySQL临时表分为系统使用的临时表和用户使用的临时表. 系统使用的临时表是指MySQL在执行某些SQL语句时需要依赖临时表来完成整个过程.系统使用的临时表的情况可以分为以下几种: *  group ...

  6. bzoj 1598: [Usaco2008 Mar]牛跑步 [k短路 A*] [学习笔记]

    1598: [Usaco2008 Mar]牛跑步 题意:k短路 ~~貌似A*的题目除了x数码就是k短路~~ \[ f(x) = g(x) + h(x) \] \(g(x)\)为到达当前状态实际代价,\ ...

  7. bzoj 4873: [Shoi2017]寿司餐厅 [最小割]

    4873: [Shoi2017]寿司餐厅 题意:略 唯一会做的... 一眼最小割 就是最大权闭合子图呀 \(s\rightarrow d_{positive} \rightarrow -d_{negt ...

  8. 使用WinInet实现HTTP站点访问

    废话不多说了,直接上代码 HTTP的GET方式代码 void sendGetRequest(LPCTSTR lpszURL) { LPCTSTR lpszAgent = _T("Winine ...

  9. 如何用vue-cli初始化一个vue项目

    单文件组件和vue-loader 解析打包.vue文件 vue为了能够使我们在项目开发中对组件进行更好的维护,提供了一个单文件组件系统,vue把每一个独立的组件放在一个.vue的文件中,在这个文件中提 ...

  10. 异步请求时有时会让js不起作用,那么重新加载js

    function reloadSmartMenu() { var jsElem = document.createElement('script'); jsElem.src= path+'/syste ...