Android:WebView中的误区
来源:互联网 发布:越狱重启后软件消失 编辑:程序博客网 时间:2024/06/06 18:10
转自:http://blog.sina.com.cn/s/blog_8a86f4dd0102w4z7.html
在android web开发的时候,WebView是必不可少的控件,但是你知道它的接口都是什么意思吗?
先说一下遇到的误区吧
1.shouldOverrideUrlLoading
这个方法是WebClient接口的一个回调方法,主要作用是防止重定向链接跳出webview。但是有的文章会这样写:
@Override
public boolean shouldOverrideUrlLoading
当初也搞不懂为什么要家一句:view.loadUrl(url);,但是后来发现,这样的话重定向的链接会多发一次,严重影响效率,后来把这句删掉,webview也能够正常的前进后退了。
//WebView常用的方法,参考:http://www.cnblogs.com/zgz345/p/3768174.html
2. 通过java代码调用javascript
WebSettings webSettings = mWebView .getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(newRunnable() {
public void run() { webview.loadUrl("javascript:wave()"); } }); } }, "demo");
3. 按返回键时, 不退出程序而是返回上一浏览页面:
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) &&mWebView .canGoBack()) { webview.goBack(); return true; } return super.onKeyDown(keyCode, event); }
4. 打开页面时, 自适应屏幕:
WebSettings webSettings = mWebView .getSettings(); webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放 webSettings.setLoadWithOverviewMode(true);
5. 便页面支持缩放:
WebSettings webSettings = mWebView .getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setBuiltInZoomControls(true); webSettings.setSupportZoom(true);
6.如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。
webview.requestFocusFromTouch();
7.WebView 加载界面主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL.
1、LoadUrl 直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif)
2、LoadData显示文字与图片内容 (模拟器1.5、1.6) 3、LoadDataWithBase 显示文字与图片内容(支持多个模拟器版本)
8.WebSettings 的常用方法介绍
setJavaScriptEnabled(true);//支持js
setPluginsEnabled(true);//支持插件
setUseWideViewPort(false); //将图片调整到适合webview的大小
setSupportZoom(true); //支持缩放
setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);//支持内容重新布局
supportMultipleWindows(); //多窗口
setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//关闭webview中缓存
setAllowFileAccess(true); //设置可以访问文件
setNeedInitialFocus(true);//当webview调用requestFocus时为webview设置节点
webviewwebSettings.setBuiltInZoomControls(true); //设置支持缩放
setJavaScriptCanOpenWind owsAutomatically(true); //支持通过JS打开新窗口
setLoadWithOverviewMode(true); // 缩放至屏幕的大小
setLoadsImagesAutomatically(true); //支持自动加载图片
9.WebViewClient 的方法全解
doUpdateVisitedHistory(WebViewview, String url, boolean isReload) //(更新历史记录)
onFormResubmission(WebView view, //(应用程序重新请求网页数据)Message dontResend, Message resend)
onLoadResource(WebView view, //String url) 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。 onPageStarted(WebViewview, //这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。String url, Bitmap favicon)
onPageFinished(WebViewview, String url) //在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关闭loading 条,切换程序动作。
onReceivedError(WebViewview, interrorCode, String description, String failingUrl)// (报告错误信息)
onReceivedHttpAuthRequest(WebView //(获取返回信息授权请求)view, HttpAuthHandler handler, String host,String realm) onReceivedSslError(WebView //重写此方法可以让webview处理https请求。view, SslErrorHandler handler, SslError error) onScaleChanged(WebView floatview, oldScale, float newScale) // (WebView发生改变时调用)
onUnhandledKeyEvent(WebViewview, //(Key事件未被加载时调用)KeyEvent event)
shouldOverrideKeyEvent(WebView view, //重写此方法才能够处理在浏览器中的按键事件。KeyEvent event)
shouldOverrideUrlLoading (WebView //在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。view, String url)
- Android:WebView中的误区
- android WebView中的误区和解决方法
- Android 中的WebView
- Android中的WebView使用
- Android WebView中的WebViewClient
- Android 中的WebView
- Android中的WebView总结
- android中的webview进度条
- Android中的WebView
- Android中的WebView
- WebView.loadUrl使用误区
- 【WebView】Android WebView中的Cookie操作
- 【WebView】Android WebView中的Cookie操作
- Android中的WebView控件用法
- android中的webView与js
- android中的WebView缓存分析
- Android中的WebView使用(一)
- 聊聊Android中的WebView控件
- Python爬虫(四):爬取136书屋小说,并保存至本地文本文件中,单进程多进程对比效率(以三生三世十里桃花为例)
- Maven(插件配置和生命周期的绑定)
- 虚拟机中 Linux 连不上网原因
- 171210 逆向-Take the maze
- Dagger2,一步一步到理解到使用
- Android:WebView中的误区
- Spring 1 利用idea搭建spring hello world程序
- 每天一道算法题——包含min函数的栈
- HDU 4776 Ants(字典树+优先队列+思维题)
- ubuntu wifi环境配置
- 18B
- bzsc
- 个人总结62
- 《SSO系列专题》之 大型互联网应用基于CAS的SSO架构