Android网页浏览器开发详解(一)


请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客)

Android 网页浏览器开发器开发详解(一),主要通过WebView类实现载入网页,刷新网页,向前载入历史网页,向后载入历史网页和缩放网页等五个功能。

Android 网页浏览器开发器开发详解(二),主要实现书签和历史记录的保存,删除,编辑等功能。

Android 网页浏览器开发器开发详解(三),主要通过AsyncTask类实现一键访问多个网站的功能。

1、 WebView

  a)  WebView是个用来显示网页的视图类。这个类基于你可以滚动你的网页浏览器或者简单的显示一些在线内容在你的Activity。它使用WebKit渲染引擎去实现:载入网页、向前载入历史网页和向后载入历史网页,缩放网页以及执行文字搜索等功能。

  b)  使用WebView自定义属于自己的网页浏览器

i.  修改WebView的内部类WebSettings,通过getSettings()得到WebSettings这里我们使用该类的方法有:

1.  setJavaScriptEnabled()方法启用JavaScript。

2.  setBuiltInZoomControls(boolean)可以启用WebView内置的缩放功能。注意:如果当组件的高度和宽度设置为WRAP_CONTENT缩放功能无效。

3.  setUseWideViewPort(true);设置任意比例缩放。缩放后,要使内容适配屏幕,不超出屏幕外显示,实现换行。这方面效果应该由html控制,而不是webview控制。例如<pstyle="word-break:break-all">test</p>实现自动换行。

        4. addJavascriptInterface(Object, String)方法把Java对象注入到WebView中,以便于可以通过JavaScript访问网页。当然这么做也是有风险的,因为一些可能的问题网页能够与应用直接接触。

ii.  创建和设置WebChromeClient子类。当一些可能会影响浏览器UI的事情发生时WebChromeClient类会被调用。例如:进度条更新和JavaScript警告被发送。这里我们使用该类的方法有:

1.  shouldOverrideUrlLoading(WebView view, String url)。当有新的URL加载到WebView(譬如说点击某个链接),该方法会决定下一步的决定。如返回true,意极“不要处理这个URL,我自己来”。如返回false,意即“WebView去加载这个URL,我不会对它做任何处理”

iii.   创建和设置WebViewClient子类。当一些影响内容呈现的事情发生时WebViewClient类会被调用。例如错误或者报告提交。你可以在这里中断URL的加载。这里我们使用该类的方法有:

1.  onProgressChanged(WebView view, intnewProgress)。这个方法告知我们加载当前页面的进展程序。newProgress的值在0到100之间。

2.  onReceivedTitle(WebView view, String title)。当页面的文档标题改变时,这个方法会告知我们。

c)   WebView默认不提供像浏览器那样的组件、默认不支持JavaScript和忽略网络错误。除了阅读网页外,用户不能与网页做其他的交互。如果你想要一个完整的成熟的网页浏览器,你可以调用浏览器应用:

Uri uri =Uri.parse("http://www.baidu.com")Intentintent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);  

2、  添加必要的权限(AndroidManifest.xml)

a)      <uses-permissionandroid:name="android.permission.INTERNET"/>

 

请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客)

学习《Android编程权威指南》心得与笔记                   by2015.2.20早

Android网页浏览器开发详解(一)相关推荐

  1. Android 蓝牙BLE开发详解

    Android 蓝牙BLE开发详解 由于年初接手了个有关蓝牙BLE的项目,开始了对蓝牙ble的学习,经过长时间的慢慢学习(学得太慢,太拖了),终于了解了该怎么写蓝牙BLE,现在就给大家分享一下. 一. ...

  2. 响应式编程之二:RxJava概述:在Android平台上开发详解

    RxJava 到底是什么 RxJava 好在哪 API 介绍和原理简析 1. 概念:扩展的观察者模式 观察者模式 RxJava 的观察者模式 2. 基本实现 1) 创建 Observer 2) 创建 ...

  3. 【转】Android Camera 相机开发详解

    在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera接口.Camera2在接口和架构上做了巨大的变动, 但是基于众所周知的原因,我们还必须基于 Android ...

  4. Android高德地图开发详解

    这段时间开发的时候用到了高德地图,对高德地图开发有心得体会,现在分享给大家,对我开发过百度地图的我来说,总体来说高德地图Demo,没有百度讲解的详细 个人更偏向于使用百度地图,但是没办发,项目需要使用 ...

  5. android条码支付开发,详解支付宝条码支付:1分钟完成收单 成本降低

    条码支付详细信息 支付宝条码支付演示 新浪科技讯 7月1日下午消息,今天上午支付宝在2011广州网货会上宣布推出手机支付产品--条码支付(Barcode Pay).该方案为微小商户提供了只需使用智能手 ...

  6. Android音视频开发详解

    概要:         1.课程从FFmpeg编译.Android Studio创建C++项目.Java调用C++.C++调用Java.C++多线程和线程锁.C++队列.OpenSL ES集成.FFm ...

  7. Android power_supply驱动开发详解

    引言 目前,各个OEM其实为了降低成本,将会用各自的渠道去购买更加物美价廉的外设. 这样,其实促进了各个厂商的竞争,而开发更加简单适配的驱动程序将会成为厂商必选项. 那么,开发一个驱动,将会有哪些点需 ...

  8. Android组件化开发详解

    学习目标: 熟练使用组件化开发,路由配置 学习内容: 在使用组件化开发前首先要明确项目整体框架,划分模块及业务(重点),好的开始才会有好的结果.模块划分明确后开始配置Module. 如图我们要完成以下 ...

  9. android拍照保存照片方向,Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能...

    android.jpg 前言 在前几篇文章中介绍了如何调用系统相机拍照和使用Camera1的实现自定义相机拍照.人脸检测等功能 文章传送门: 接下来的几篇文章中,我将给大家介绍如何使用Camera2实 ...

最新文章

  1. 10万奖金:天池OCR大赛来了!
  2. 信息安全的一些东西,初步查询了解!
  3. ko文件卸载 linux_Linux驱动06 | 为什么使用内核模块?
  4. java 类参数_Java的数据类型和参数传递(详解)
  5. 2ASK和2FSK相干解调误码率仿真matlab
  6. python 中用什么键缩进 —— tab 还是空格?
  7. 45页的NAS神经网络搜索的综述,请查收!
  8. Codeforces Round #618 (Div. 2)-C. Anu Has a Function
  9. Linux环境安装zookeeper3.5.5后,总是启动不了
  10. java enumeration 排序_Java如何对java.util.Enumeration进行排序?
  11. 飞鸽传书 bbs以及个人主页服务好不热闹
  12. Liunx官网下载步骤
  13. 机器学习个人资料整理
  14. win10系统点击菜单没有反应
  15. 联想笔记本电脑昭阳k2450关机这个灯一直闪烁,而且还消耗电量
  16. CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍
  17. access自动自动累计余额_在Access2007数据库中如何使用查询来计算累计余额
  18. 第十八章 SQL函数 ASCII
  19. 用html制作一个音乐排行榜,使用原生JavaScript制作一个漂亮的音乐播放器
  20. 软考中级考试数据库工程师需要备考多久?

热门文章

  1. Linux 之 定时任务 crond
  2. tensorflow训练过程的日志与监控
  3. L1-057 PTA使我精神焕发 - java
  4. 微信小程序自定义导航栏,实现自适应
  5. python+selenium——详解介绍Selenium常用API的使用--python语言(完整版)
  6. 微信小程序-仿今日头条客户端
  7. 西泽金融: 银行业的下半场
  8. 大数据技术Hive详解
  9. 区块链在工业互联网的应用前景
  10. LeetCode:1219.黄金矿工(Java语言)