|
Android中,提供了WebKit引擎用于对网页浏览和操作进行编程。Google对WebKit进行了封装,提供了丰富的Java接口,其中最重要的便是android.webkit.WebView控件。
1. WebViewer控件
Android提供了WebView控件专门用来浏览网页。其使用方法和其他控件一样,需要在布局文件中进行布局,然后在程序中就可以使用并进行设置了。通过loadUrl方法,可以访问网页。代码如下:
- wb=(WebView)findViewById(R.id.wb);
- wb.loadUrl(url);
|
对于浏览器的设置,可以通过WebSettings来设置WebView的一些属性、状态等。代码如下:
- WebSettings webSettings = mWebView.getSettings();
- webSettings.setJavaScriptEnabled( true );
- //设置可以访问文件
- webSettings.setAllowFileAccess( true );
- //设置支持缩放
- webSettings.setBuiltInZoomControls( true );
|
2. WebViewClient和WebChromClient
WebViewClient和WebChromClientshi 可以看作是辅助WebView管理网页中各种通知、请求等事件以及JavaScript时间的两个类。
2.1 WebViewClient
通过WebView的setWebViewClient方法指定一个WebViewClient对象。通过覆盖该类的方法来辅助WebView浏览网页。代码如下:
- 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);
- }
- });
|
2.2 WebChromClient
对于网页中使用的JavaScript脚本语言,就可以使用该类处理Js事件,如对话框加载进度等。例如:
- mWebView.setWebChromeClient( new WebChromeClient(){
- @Override
- //处理javascript中的alert
- public boolean onJsAlert(WebView view, String url, String message,
- final JsResult result)
- {
- //构建一个Builder来显示网页中的对话框
- Builder builder = new Builder(Activity01. this );
- builder.setTitle( "提示对话框" );
- builder.setMessage(message);
- builder.setPositiveButton(android.R.string.ok,
- new AlertDialog.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- //点击确定按钮之后,继续执行网页中的操作
- result.confirm();
- }
- });
- builder.setCancelable( false );
- builder.create();
- builder.show();
- return true ;
- };
- }
|
----------------------------
原文链接:https://blog.51cto.com/52android/497377
程序猿的技术大观园:www.javathinker.net
[这个贴子最后由 flybird 在 2020-06-03 21:05:40 重新编辑]
|
|