Android网页浏览器开发详解(一)
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网页浏览器开发详解(一)相关推荐
- Android 蓝牙BLE开发详解
Android 蓝牙BLE开发详解 由于年初接手了个有关蓝牙BLE的项目,开始了对蓝牙ble的学习,经过长时间的慢慢学习(学得太慢,太拖了),终于了解了该怎么写蓝牙BLE,现在就给大家分享一下. 一. ...
- 响应式编程之二:RxJava概述:在Android平台上开发详解
RxJava 到底是什么 RxJava 好在哪 API 介绍和原理简析 1. 概念:扩展的观察者模式 观察者模式 RxJava 的观察者模式 2. 基本实现 1) 创建 Observer 2) 创建 ...
- 【转】Android Camera 相机开发详解
在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera接口.Camera2在接口和架构上做了巨大的变动, 但是基于众所周知的原因,我们还必须基于 Android ...
- Android高德地图开发详解
这段时间开发的时候用到了高德地图,对高德地图开发有心得体会,现在分享给大家,对我开发过百度地图的我来说,总体来说高德地图Demo,没有百度讲解的详细 个人更偏向于使用百度地图,但是没办发,项目需要使用 ...
- android条码支付开发,详解支付宝条码支付:1分钟完成收单 成本降低
条码支付详细信息 支付宝条码支付演示 新浪科技讯 7月1日下午消息,今天上午支付宝在2011广州网货会上宣布推出手机支付产品--条码支付(Barcode Pay).该方案为微小商户提供了只需使用智能手 ...
- Android音视频开发详解
概要: 1.课程从FFmpeg编译.Android Studio创建C++项目.Java调用C++.C++调用Java.C++多线程和线程锁.C++队列.OpenSL ES集成.FFm ...
- Android power_supply驱动开发详解
引言 目前,各个OEM其实为了降低成本,将会用各自的渠道去购买更加物美价廉的外设. 这样,其实促进了各个厂商的竞争,而开发更加简单适配的驱动程序将会成为厂商必选项. 那么,开发一个驱动,将会有哪些点需 ...
- Android组件化开发详解
学习目标: 熟练使用组件化开发,路由配置 学习内容: 在使用组件化开发前首先要明确项目整体框架,划分模块及业务(重点),好的开始才会有好的结果.模块划分明确后开始配置Module. 如图我们要完成以下 ...
- android拍照保存照片方向,Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能...
android.jpg 前言 在前几篇文章中介绍了如何调用系统相机拍照和使用Camera1的实现自定义相机拍照.人脸检测等功能 文章传送门: 接下来的几篇文章中,我将给大家介绍如何使用Camera2实 ...
最新文章
- 10万奖金:天池OCR大赛来了!
- 信息安全的一些东西,初步查询了解!
- ko文件卸载 linux_Linux驱动06 | 为什么使用内核模块?
- java 类参数_Java的数据类型和参数传递(详解)
- 2ASK和2FSK相干解调误码率仿真matlab
- python 中用什么键缩进 —— tab 还是空格?
- 45页的NAS神经网络搜索的综述,请查收!
- Codeforces Round #618 (Div. 2)-C. Anu Has a Function
- Linux环境安装zookeeper3.5.5后,总是启动不了
- java enumeration 排序_Java如何对java.util.Enumeration进行排序?
- 飞鸽传书 bbs以及个人主页服务好不热闹
- Liunx官网下载步骤
- 机器学习个人资料整理
- win10系统点击菜单没有反应
- 联想笔记本电脑昭阳k2450关机这个灯一直闪烁,而且还消耗电量
- CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍
- access自动自动累计余额_在Access2007数据库中如何使用查询来计算累计余额
- 第十八章 SQL函数 ASCII
- 用html制作一个音乐排行榜,使用原生JavaScript制作一个漂亮的音乐播放器
- 软考中级考试数据库工程师需要备考多久?