WebView控件的使用

来源:互联网 发布:c语言abs 编辑:程序博客网 时间:2024/06/05 02:08

!!!首先要加权限

<uses-permission android:name="android.permission.INTERNET"/>
webView 的介绍:
是一个可以显示网页的控件,他的网页渲染引擎和Safari、Chrome一样都是Webkit(一个开源的浏览器引擎)。即有本地应用的功能,又有B/S应用(Browser/Server浏览器/服务器)模式的优势,可以说是二者的结合体)。
使用webView来开发应用,有几个很明显的优势:
1、搭建Java和Javascript之间交互的桥梁。
2、跨平台,网页代码编写一次,即可以在任何支持web的平台上运行,如adnroid iphone win节省开发成本,提高开发效率。
3、资源利用最大化,web开发人员只用很少的学习成本即可以使用webView开发。
4、应用程序维护成本大大降低,只用维护服务器端代码即可。

WebView加载页面

LoadDataWithBase():直接加载本地信息。---------- 和 --------loadDataWithBaseURL():通过URL加载本地信息。

1.)直接加载一个网址:
WebView.loadUrl(Sring url)(如果是在assert 目录下:地址为file:///android_asset/jstest.html)。
2.)直接加载一个html字符串:webView.loadData()。
如果想在APP中显示一个网页内容?
:答案:1、调用系统内置的浏览器应用。2、是WebView控件。
WebView的常用设置属性WebSetting:如何获得?
常用方法:
WebSetting ws=wv. getSettings();//获得当前webView的设置对象
setJavaScriptCanOpenWindowsAutomatically(true):支持通过js打开新的窗口
setJavaScriptEnabled(true):支持加载javaScript,默认是false,
setSupportZoom(true):支持缩放(大小)
setDefaultZoom(ZoomDensity.FAR):设置webView的默认缩放
setBuiltInZoomControls(true):支持出现放大缩小工具(打开自带的缩放按钮)
setPluginsEnabled(true):设置为支持插件,如flashPlayer插件。
WebChromeClient:
当遇到影响浏览网页的一些事情。比如显示进度条或弹出js对象框,就需要设置WebChromeClient对象。常用方法:onProgressChanged
wv.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
// TODO Auto-generated method stub
super.onProgressChanged(view, newProgress);
Log.d("zzz", "pro"+newProgress);
//显示出来
bar.setVisibility(View.VISIBLE);
//赋值
bar.setProgress(newProgress);
if (newProgress==100) {
bar.setVisibility(View.GONE);
}
}
});
WebViewClient:
当影响网页渲染内容的事情发生时,比如,加载出现错误,我们就可以它拦截错误。
常用方法:
shouldOverrideUrlLoading
网页中的超链接被按下时回调(拦截url)
onPageFinished
网页加载完成时被回调
onReceivedError
加载网页发生错误时被回调
-----------------------------------------------------------------
WebView ww=(WebView) findViewById(R.id.webView1);
//网页显示在当前的页面
ww.setWebViewClient(new WebViewClient());
//设置支持网页中的js脚本
WebSettings settings=ww.getSettings();
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setJavaScriptEnabled(true);
//第一种方法加载一个网页
ww.loadUrl("http://www.baidu.com");
/* //第二种方式
String data="<html><body>This is my love</body></html>";
ww.loadData(data, "text/html", "utf-8");*/
}
--------------------------------------
//直接启动系统默认的浏览器应用加载页面
public void openweb(View v){
Intent it=new Intent(Intent.ACTION_VIEW);
it.setData(Uri.parse("http://www.baidu.com"));
startActivity(it);
}
0 0
原创粉丝点击