在Android手机中内置了一款高性能webkit内核浏览器
来源:互联网 发布:linux 系统环境变量 编辑:程序博客网 时间:2024/05/02 05:55
在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件
WebView在开发过程中应该注意几点:
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Webpage not available错误。
2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。
WebSettings webSetting = webview.getSettings();
webSetting.setJavaScriptEnabled(true);
3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖webview的WebViewClient对象。
1 mWebView.setWebViewClient(new WebViewClient(){
2 publicboolean shouldOverrideUrlLoading(WebView view, String url) {
3 view.loadUrl(url);
4 returntrue;
5 }
6 });
4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
7 publicboolean onKeyDown(int keyCode, KeyEventevent) {
8 if((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
9 mWebView.goBack();
10 returntrue;
11 }
12 returnsuper.onKeyDown(keyCode,event);
13 }
5.如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。
webview.requestFocusFromTouch();
6.WebView 加载界面主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL.
1、LoadUrl 直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif)
2、LoadData 显示文字与图片内容(模拟器1.5、1.6)
3、LoadDataWithBase 显示文字与图片内容(支持多个模拟器版本)
WebSettings的常用方法介绍
14 setJavaScriptEnabled(true);
//支持js脚步
15 setPluginsEnabled(true);
//支持插件
16 setUseWideViewPort(false);
//将图片调整到适合webview的大小
17 setSupportZoom(true);
//支持缩放
18 setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
//支持内容从新布局
19 supportMultipleWindows();
//多窗口
20 setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//关闭webview中缓存
21 setAllowFileAccess(true);
//设置可以访问文件
22 setNeedInitialFocus(true);
//当webview调用requestFocus时为webview设置节点
webSettings.setBuiltInZoomControls(true);
//设置支持缩放
23 setJavaScriptCanOpenWindowsAutomatically(true);
//支持通过JS打开新窗口
24 setLoadsImagesAutomatically(true);
//支持自动加载图片
WebViewClient的方法全解
25 doUpdateVisitedHistory(WebViewview,Stringurl, boolean isReload)
(更新历史记录)
26 onFormResubmission(WebViewview,MessagedontResend,Messageresend)
(应用程序重新请求网页数据)
27 onLoadResource(WebViewview,Stringurl)
在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。
28 onPageStarted(WebViewview,Stringurl,Bitmapfavicon)
这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告
诉用户程序在等待网络响应。
29 onPageFinished(WebViewview,Stringurl)
在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关
闭loading 条,切换程序动作。
30 onReceivedError(WebViewview, int errorCode, Stringdescription,StringfailingUrl)
(报告错误信息)
31 onReceivedHttpAuthRequest(WebViewview,HttpAuthHandlerhandler,Stringhost,
Stringrealm)(获取返回信息授权请求)
32 onReceivedSslError(WebViewview,SslErrorHandlerhandler,SslErrorerror)
重写此方法可以让webview处理https请求。
33 onScaleChanged(WebViewview, float oldScale, float newScale)
(WebView发生改变时调用)
34 onUnhandledKeyEvent(WebViewview,KeyEventevent)
(Key事件未被加载时调用)
35 shouldOverrideKeyEvent(WebViewview,KeyEventevent)
重写此方法才能够处理在浏览器中的按键事件。
36 shouldOverrideUrlLoading(WebViewview,Stringurl)
在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。
- 在Android手机中内置了一款高性能webkit内核浏览器
- 在浏览器内核WebKit中并行加载外部脚本
- android 系统内置浏览器——webkit
- 一款高性能的Android模拟器
- 浏览器内核Gecko与WebKit哪个性能更强大
- 浏览器内核WebKit编年史
- 浏览器内核WebKit编年史
- Android系统中 webkit 内核浏览器position:fixed所造成的兼容问题
- 在Android手机图库中预先内置图片
- 判断手机是android还是ios,是否用了微信内置浏览器
- Android webkit 内核浏览器不兼容position:fixed解决方案
- WebKit内核封装的网页浏览器/文件浏览器(Android)
- 专注浏览器,专注webkit内核
- Canvas 在Android手机的某些浏览器中绘制两次
- Android WebKit 内核
- android webkit 内核
- Cocos2d-js Android手机上微信内置浏览器黑屏解决方法
- Android中直接打开高德地图导航(手机上装了高德地图)
- 古希腊神话阿波罗
- 7月笔记
- 通过硬盘将Fedora16升级到Fedora17
- android监听正在运行的程序
- QTP的点滴记录
- 在Android手机中内置了一款高性能webkit内核浏览器
- php写的简单选择排序算法和直接插入排序算法
- Node.normalize
- ZOJ2770 差分约束
- 关于java进阶的一系列好博客
- Qt属性
- Visual Studio2010 “调试并继续" 无法使用
- Android解析XML
- 关注网银系统:安全模型和架构设计