Anaroid WebView详解大全
资源描述:
1.android提供了webView控件专门用来浏览网页。
然后在程序中装载webView控件,设置属性,比如:颜色、字体、要访问的网址等。通过loadUrl方法设置当前webView需要访问的网址。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。
2.下面是设置一些常用属性、状态的方法
WebSettings常用方法:
setAllowFileAccess
启用或禁止WebView访问文件数据
setBlockNetworkImage 是否显示网络图像
setBuiltInZoomControls
设置是否支持缩放
setCacheMode 设置缓冲的模式
setDefaultFontSize
设置默认的字体大小
setDefaultTextEncodingName 设置在解码时使用的默认编码
setFixedFontFamily
设置固定使用的字体
setJavaSciptEnabled 设置是否支持Javascript
setLayoutAlgorithm
设置布局方式
setLightTouchEnabled 设置用鼠标激活被选项
setSupportZoom 设置是否支持变焦
WebViewClient常用方法:
doUpdate VisitedHistory 更新历史记录
onFormResubmission
应用程序重新请求网页数据
onLoadResource 加载指定地址提供的资源
onPageFinished
网页加载完毕
onPageStarted 网页开始加载
onReceivedError 报告错误信息
onScaleChanged
WebView发生改变
shouldOverrideUrlLoading 控制新的连接在当前WebView中打开
WebChromeClient常用方法:
onCloseWindow 关闭WebView
onCreateWindow
创建WebView
onJsAlert
处理Javascript中的Alert对话框
onJsConfirm处理Javascript中的Confirm对话框
onJsPrompt处理Javascript中的Prompt对话框
onProgressChanged
加载进度条改变
onReceivedlcon 网页图标更改
onReceivedTitle 网页Title更改
onRequestFocus
WebView显示焦点
3. android
webView相关知识
@下面的代码通过loadUrl方法设置当前webView需要访问的网址:
mWebView=(WebView)
findViewById(R.id.WebView01);
mWebView.loadUrl(“http://www.sogou.com”);
@在android中专门通过WebSettings来设置WebView的一些属性、状态等。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置:
WebSettings
webSettings=mWebView.getSettings();//取得对象
WebSettings和WebView都在同一个生命周期中存在,当WebView被销毁后,如果再使用WebSettings,则会抛出异常。
@使用WebViewClient来完成在应用程序中自定义网页浏览程序:
WebViewClient是辅助WebView处理各种通知、请求等事件的类。通过WebView的setWebViewClient方法指定WebViewClient对象。
WebView可以通过覆盖WebViewClient方法来辅助WebView浏览网页:
public
Boolean shouldOverrideUrlLoading
(WebView view,String url){view
.loadUrl(url);return true;}
4. android
webView实例
实例中使用EditText输入网址,用Button来确认连接,用webView显示网页内容。
这里使用了WebViewClient来辅助WebView处理一些事件,因此我们显示的网页都是在一个WebView控件中。可以通过goBack和goForward方法设置前进和后退,先检查是否可以前进和后退:
if((keyCode==keyEvent.KEYCODE_BACK)&&mWebView.canGoBack())
{
mWebView.goBack()//返回前一个页面
return
true;
}
例子中,通过自制浏览器访问一个包含javascript对话框的html页面。通过点击界面上的“警告,提醒对话框”按钮、“带选择的对话框”按钮、“要求用户输入的对话框”按钮,界面分别会弹出对话框“这是一个警告对话框”、“更多信息请到我的博客去”正常按钮/取消按钮、“输入对话框”正常按钮/取消按钮、一个跳转页面。Js
html页面在代码包的根目录下(dialog.html)。
我们通过setWebChromeClient方法为WebView设置一个WebChromeClient对象,辅助WebView处理js对话框,监听按钮事件,然后通过confirm和cancel方法将我们的操作传递给js处理。
package
com.yarin.android.Examples_08_06;
import android.app.Activity;
import
android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import
android.content.DialogInterface;
import
android.graphics.Bitmap;
……
public class Activity01 extends
Activity
{
private final String DEBUG_TAG = "Activity01";
private
Button mButton;
private EditText mEditText;
private WebView
mWebView;
/** Called when the activity is first created.
*/
@Override
public void onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton
= (Button) findViewById(R.id.Button01);
mEditText = (EditText)
findViewById(R.id.EditText01);
mWebView = (WebView)
findViewById(R.id.WebView01);
//设置支持JavaScript脚本
WebSettings webSettings =
mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
//设置可以访问文件
webSettings.setAllowFileAccess(true);
//设置支持缩放
webSettings.setBuiltInZoomControls(true);
//设置WebViewClient
mWebView.setWebViewClient(new
WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view,
String url)
{
view.loadUrl(url);
return
true;
}
@Override
public void onPageFinished(WebView view, String
url)
{
super.onPageFinished(view, url);
}
@Override
public void
onPageStarted(WebView view, String url, Bitmap
favicon)
{
super.onPageStarted(view, url, favicon);
}
});
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。