Android中WebKit的应用

Android中,提供了WebKit引擎用于对网页浏览和操作进行编程。Google对WebKit进行了封装,提供了丰富的Java接口,其中最重要的便是android.webkit.WebView控件。

1.WebViewer控件

Android提供了WebView控件专门用来浏览网页。其使用方法和其他控件一样,需要在布局文件中进行布局,然后在程序中就可以使用并进行设置了。通过loadUrl方法,可以访问网页。代码如下:

Java代码:

wb=(WebView)findViewById(R.id.wb);

wb.loadUrl(url);

对于浏览器的设置,可以通过WebSettings来设置WebView的一些属性、状态等。代码如下:

Java代码:

WebSettingswebSettings=mWebView.getSettings();

webSettings.setJavaScriptEnabled(true);

//设置可以访问文件

webSettings.setAllowFileAccess(true);

//设置支持缩放

webSettings.setBuiltInZoomControls(true);

2.WebViewClient和WebChromClient

WebViewClient和WebChromClientshi可以看作是辅助WebView管理网页中各种通知、请求等事件以及JavaScript时间的两个类。

2.1WebViewClient

通过WebView的setWebViewClient方法指定一个WebViewClient对象。通过覆盖该类的方法来辅助WebView浏览网页。代码如下:

Java代码:

mWebView.setWebViewClient(newWebViewClient()

{

publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl)

{

view.loadUrl(url);

returntrue;

}

@Override

publicvoidonPageFinished(WebViewview,Stringurl)

{

super.onPageFinished(view,url);

}

@Override

publicvoidonPageStarted(WebViewview,Stringurl,Bitmapfavicon)

{

super.onPageStarted(view,url,favicon);

}

});

2.2WebChromClient

对于网页中使用的JavaScript脚本语言,就可以使用该类处理Js事件,如对话框加载进度等。例如:

Java代码:

mWebView.setWebChromeClient(newWebChromeClient(){

@Override

//处理javascript中的alert

publicbooleanonJsAlert(WebViewview,Stringurl,Stringmessage,

finalJsResultresult)

{

//构建一个Builder来显示网页中的对话框

Builderbuilder=newBuilder(Activitythis);

builder.setTitle("提示对话框");

builder.setMessage(message);

builder.setPositiveButton(android.R.string.ok,

newAlertDialog.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhich){

//点击确定按钮之后,继续执行网页中的操作

result.confirm();

}

});

builder.setCancelable(false);

builder.create();

builder.show();

returntrue;

};

}

相关推荐