Android使用WebView加载网页
在AndroidManifest.xml设置访问网络权限:
<span style="font-size:24px;"><span style="font-size:24px;"><uses-permission android:name="android.permission.INTERNET"/></span></span>
控件:
<span style="font-size:24px;"><span style="font-size:24px;"><WebView android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/webView"/></span></span>
关键代码:
<span style="font-size:24px;"> mWebView=(WebView) findViewById(R.id.webView);mWebView.setVisibility(View.VISIBLE);WebSettings webSettings = mWebView.getSettings();webSettings.setJavaScriptEnabled(true);mWebView.loadUrl("http://www.baidu.com"); </span>
但是如果只是用上面的代码会默认调用浏览器加载网页,不是在webview里加载网页
方法是使用setWebViewClient
<span style="font-size:24px;">import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;public class MainActivity extends Activity {
private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test); init();}private void init(){webView = (WebView) findViewById(R.id.webView);//WebView加载web资源webView.loadUrl("http://baidu.com");//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开webView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// TODO Auto-generated method stub//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器view.loadUrl(url);return true;}});}}</span>
3.如果访问的页面中有Javascript,则webview必须设置支持Javascript
<span style="font-size:24px;">//启用支持javascript
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);</span>
4,如果希望浏览的网页后退而不是退出浏览器,需要WebView覆盖URL加载,让它自动生成历史访问记录,那样就可以通过前进或后退访问已访问过的站点。
<span style="font-size:24px;">//改写物理按键——返回的逻辑@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif(keyCode==KeyEvent.KEYCODE_BACK){if(webView.canGoBack()){webView.goBack();//返回上一页面return true;}else{System.exit(0);//退出程序}}return super.onKeyDown(keyCode, event);}</span>
5,判断页面加载过程
<span style="font-size:24px;">webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {// TODO Auto-generated method stubif (newProgress == 100) {// 网页加载完成} else {// 加载中}}});</span>
webview有两个方法:setWebChromeClient 和 setWebClient
setWebViewClient:主要处理解析,渲染网页等浏览器做的事情
setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
WebViewClient就是帮助WebView处理各种通知、请求事件的。
WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
onCloseWindow(关闭WebView)
onCreateWindow()
onJsAlert (WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出)
onJsPrompt
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitle
比如可以添加进度条,使得界面更友好
<span style="font-size:24px;">webview1.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { setProgress(progress * 100); if(progress == 100){ imageView1.setVisibility(View.GONE); tv1.setVisibility(View.GONE);pb1.setVisibility(View.GONE);fy1.setVisibility(View.GONE);}}}); </span>
WebViewClient就是帮助WebView处理各种通知、请求事件的,具体来说包括:
onLoadResource
onPageStart
onPageFinish
onReceiveError
onReceivedHttpAuthRequest
<span style="font-size:24px;">webview1.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // Handle the error Toast.makeText(getApplicationContext(), "网络连接失败 ,请连接网络。", Toast.LENGTH_SHORT).show();
} public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); //设置字符集编码 webview1.getSettings().setDefaultTextEncodingName("UTF-8");webview1.loadUrl("http://www.android100.org/");</span>
Android使用WebView加载网页相关推荐
- Android使用WebView加载网页及数据
今天主要介绍一下Android的一个原生组件-WebView. 在Api中关于这个类的介绍大致就是这是一个可以显示网页的视图,如: webView.loadUrl("http://www.b ...
- android 使用webview 加载网页
1. <WebView android:id="@+id/webView"android:layout_width="fill_parent"androi ...
- android动态设置错误页面,Android中替换WebView加载网页失败时的页面
我们用webView去请求一个网页链接的时候,如果请求网页失败或无网络的情况下,它会返回给我们这样一个页面,如下图所示: 上面这个页面就是系统自带的页面,你觉得是不是很丑?反正小编本人觉得非常丑,很难 ...
- android WebView加载网页白屏问题优化处理
android WebView加载网页白屏问题优化处理 问题描述: 使用webview加载Web界面时,会出现界面白屏的情况.http下通常问题不大,通常https白屏的可能性很大,而且通常没有任何报 ...
- webview加载html跳转,WebView加载网页(二)
WebView加载网页(二) 一.实现目标 1.实现一个页面activity_main.xml,该页面上面有一个TextView和两个WebView,一个WebView显示百度首页,另一个WebVie ...
- webview加载网页,tel协议不会调出拨号盘?该如何处理
webview加载网页,tel协议不会调出拨号盘? 在窗体上放了一个Webview: public void onCreate(Bundle savedInstanceState) { ...
- Webview加载网页时出现NET::ERR_CACHE_MISS的错误
当使用webview加载网页时我们会遇到网页加载出错,出现NET::ERR_CACHE_MISS的错误,解决方法只需要在你工程的AndroidManifest.xml文件中加入联网的权限 <us ...
- Android中WebView加载sdcard中的html时提示:ERR_FILE_NOT_FOUND和ERR_ACCESS_DENIED
场景 Android中WebView加载sdcard中的html显示: Android中WebView加载sdcard中的html显示_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在实 ...
- Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51809558 接着上篇Android中Web ...
最新文章
- Linux系统上怎么安装服务器管理软件Cockpit?
- JavaScript 专题之函数柯里化
- python爬虫常见报错_对Python爬虫常见工具总结,欢迎补充
- 沃顿商学院最受欢迎的思维课
- sourcetree 卡顿_哈曼卡顿Harman Kardon音响开奖!
- pmp考试有题库么?有多少题?
- python导入鸢尾花数据集_python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析...
- 2022年超高清视频行业研究报告
- openbci脑电帽3d打印文件下载
- python数据分析水果_用python解决简单的水果分类问题
- 【阿里云产品使用教程】1. 阿里云VPC ECS SLB NAT初体验 - 上
- 触摸一体机android,触摸一体机的系统是安卓系统还是Windows系统?
- 我国东北虎种群增长迅速 但近交风险不容忽视
- 新赛季的中超和国安,荆棘中前行
- opencv3.2教程linux,Linux编译OpenCV3.2.0-OCL模块并使用
- 【韧性设计】节流模式
- ReactDOM.render()函数、条件渲染、列表渲染
- jquery管理数据
- 单片机c语言数码管显示循环0到9程序,七段数码管0~9循环显示程序
- CELLID GET