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,
方法把Java对象注入到WebView中,以便于可以通过JavaScript访问网页。当然这么做也是有风险的,因为一些可能的问题网页能够与应用直接接触。
String)
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-permission
android:name="android.permission.INTERNET"
/>
请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客)
学习《Android编程权威指南》心得与笔记 by2015.2.20早