WebView
来源:互联网 发布:pdf拼接软件免费 编辑:程序博客网 时间:2024/05/22 13:03
WebView
- loadUrl()
- loadData()
- loadDataWithBaseURL()
- capturePicture()
- goBack()
- goForward()
- stopLoading()
- reload()
webView_main = (WebView) findViewById(R.id.webView_main);
webView_main.loadUrl("http://www.qq.com");
webView_main = (WebView) findViewById(R.id.webView_main);
// webView_main.loadData(data, "text/html","utf-8");//这个方法中虽然设置了字符集,但是运行效果中发现依然中文会显示乱码。为了解决这个问题,建议使用loadDataWithBaseURL()方法。
webView_main.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);
3、如果html中包含有超级链接地址,WebView能顺利执行吗?运行后发现,所有的javascript都不会执行。因为WebView 在默认情况下不支持javascript。如何让执行javascript呢?让WebView支持javascript的两个步骤:
- 使用 WebView 组件的WebSettings对象的setJavaScriptEnabled()方法。这种做法是让 WebView 能支持绝大多数的javascript语言。但是依然不支持alert等警告对话框语句。
- 使用 WebView 组件的setWebChromeClient()方法。这种做法是让 WebView 也支持显示alert等警告对话框。
基本代码:webView_main.getSettings().setJavaScriptEnabled(true);// 支持运行javascript
webView_main.setWebChromeClient(new WebChromeClient());// 支持运行特殊的javascript(例如:alert())
webView_main.setWebViewClient(new WebViewClient());// 当点击超链地址后不会新打开浏览器来访问,而是始终在本app中浏览页面
经过运行后发现,WebView中的超链地址在点击后,会跳出该应用程序,而弹出新的浏览器去访问该网页。如果解决呢?调用webview对象的setWebViewClient()方法即可解决。
webView_main.setWebViewClient(new WebViewClient());
【注意:】WebView除了可以加载服务器端的网页,还可以加载本地资产目录中的网页文件。网页文件格式为:"file:///android_asset/文件名称"。
二、WebKit例如:// 加载本地资产目录下的网页文件webView_main.loadUrl("file:///android_asset/网页文件名称.html")。
方法
描述
setJavaScriptEnabled(boolean flag)
设置是否支持Javascript
setBlockNetworkImage(boolean flag)
设置是否阻止网络图片加载
setBuiltInZoomControls(boolean enabled)
将HTML文本内容加载到WebView中
setCacheMode(int mode)
设置缓存模式
setDefaultFontSize(int size)
设置默认字体大小
setFixedFontFamily(String font)
设置固定使用的字体
setDefaultTextEncodingName(String encoding)
设置解码时默认的字符集
setSupportZoom(boolean support)
设置是否支持变焦
setAllowFileAccess(boolean allow)
设置是否允许访问WebView中文件。就是file:///android_asset和file:///android_res路径下的资产和资源文件。默认允许访问。
方法
描述
onJsAlert()
处理Javascript中Alert对话框
onJsConfirm()
处理Javascript中Confirm对话框
onJsPrompt()
处理Javascript中Prompt对话框
onProgressChanged()
加载进度条改变
onCloseWindow()
关闭WebView
onCreateWindow()
创建WebView
onReceivedIcon()
Icon图标改变
onReceivedTitle()
网页Title改变
onRequestFocus()
WebView显示焦点
方法
描述
shouldOverrideUrlLoading()
新的链接在当前WebView中打开
onPageStarted()
网页开始加载
onPageFinished()
网页加载完毕
doUpdateVisitedHistory()
更新访问历史记录的数据库
onLoadResource()
加载指定Url地址提供的资源
onFormResubmission()
应用程序重新请求网页数据
onScaleChanged()
WebView发生改变
Java代码中也可以直接调用Javascript方法。代码如下:
webView_main.loadUrl("javascript:方法名()");
【备注:】调用页面地址:http://m.weather.com.cn/m/pn12/weather.htm?id=101010100T
webView_main = (WebView) findViewById(R.id.webView_main);webView_main.getSettings().setJavaScriptEnabled(true);webView_main.setWebChromeClient(new WebChromeClient());webView_main.setWebViewClient(new WebViewClient());webView_main.loadUrl("http://m.weather.com.cn/m/pn12/weather.htm?id=101010100T");
publicclass MainActivity extends Activity {
privateEditText editText_main_url;
privateWebView webView_main;
private String url = "";
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText_main_url = (EditText) findViewById(R.id.editText_main_url);
webView_main = (WebView) findViewById(R.id.webView_main);
// 让webview对象支持解析javascript语句
webView_main.getSettings().setJavaScriptEnabled(true);
// 让webview对象支持解析alert()等特殊的javascript语句
webView_main.setWebChromeClient(new WebChromeClient());
// 如果不使用该句代码,在点击超链地址后,会跳出程序,而弹出浏览器访问网页。
webView_main.setWebViewClient(new WebViewClient());
}
publicvoid clickButton(View view) {
switch (view.getId()) {
// 浏览器中后退键监听
caseR.id.button_main_goback:
webView_main.goBack();
break;
// 浏览器前进键监听
caseR.id.button_main_goforward:
webView_main.goForward();
break;
// 当输入网址后,点击该按钮,可以执行访问
caseR.id.button_main_submit:
url = editText_main_url.getText().toString();
if ((url == null) || url.equals("")) {
Toast.makeText(MainActivity.this, "请输入url地址!", Toast.LENGTH_LONG).show();
} else {
if (url.indexOf("http://") != 0) {
url = "http://" + url;
}
webView_main.loadUrl(url);
}
break;
// 浏览器停止加载键监听
caseR.id.button_main_stop:
webView_main.stopLoading();
break;
// 浏览器刷新键监听
default:
break;
}
}
}
- 概念:MIME意为多功能Internet邮件扩展,它设计的最初目的是为了在发送 电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。
- 每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。
- 常见的MIME类型(通用型):
- 超文本标记语言文本 .html text/html
- xml文档 .xml text/xml
- XHTML文档 .xhtml application/xhtml+xml
- 普通文本 .txt text/plain
- RTF文本 .rtf application/rtf
- PDF文档 .pdf application/pdf
- Microsoft Word文件 .word application/msword
- PNG图像 .png image/png
- GIF图形 .gif image/gif
- JPEG图形 .jpeg,.jpg image/jpeg
- au声音文件 .au audio/basic
- MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
- RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
- MPEG文件 .mpg,.mpeg video/mpeg
- AVI文件 .avi video/x-msvideo
- GZIP文件 .gz application/x-gzip
- TAR文件 .tar application/x-tar
- 任意的二进制数据 application/octet-stream
- WebView
- WebView
- WebView
- webView
- webView
- webview
- webview
- WebView
- webview
- webview
- webview
- WebView
- webView
- webview
- webView
- webview
- WebView
- WebView
- Oracle 11g Express Edition 在Window上的安装
- myeclipse常用快捷键
- [Android] 搭建Android的调试环境:使用USB方式的ADB
- Quartz2实现任务的临时启动/暂停/恢复
- tomcat远程调试
- WebView
- ecshop session表被攻击 每分钟数据剧增 临时的解决方法
- Linux网络编程经典书籍
- Java增强了内存管理功能
- win2008server设置问题
- android-2016-常见面试题总结(二)
- JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
- 我是如何放弃投行回归技术的
- Java的内存管理实际上就是对象的管理