安卓中WebView控件

来源:互联网 发布:centos 7内核支持ntfS 编辑:程序博客网 时间:2024/05/16 13:42

在安卓开发的过程中,有事后需要打开一些网页,这时候使用webview控件能够更轻松完成内容的显示

WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。
webview有两个方法:setWebChromeClient 和 setWebClient
setWebClient:主要处理解析,渲染网页等浏览器做的事情
setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 
WebViewClient就是帮助WebView处理各种通知、请求事件的。

使用时需要在配置文件中加入网络请求权限:

<uses-permission android:name="android.permission.INTERNET"/>

1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);

2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
  互联网用:webView.loadUrl("http://www.google.com"); 
  本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中

3.调用Activity的setContentView)方法来显示网页视图

4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面

示例代码如下:

public class MainActivity extends Activity {      private WebView webview;      @Override     public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          //实例化WebView对象          webview = new WebView(this);          //设置WebView属性,能够执行Javascript脚本          webview.getSettings().setJavaScriptEnabled(true);          //加载需要显示的网页          webview.loadUrl("http://www.51cto.com/");          //设置Web视图          setContentView(webview);      }            @Override     //设置回退      //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法      public boolean onKeyDown(int keyCode, KeyEvent event) {          if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {              webview.goBack(); //goBack()表示返回WebView的上一页面              return true;          }          return false;  } 

常用的方法有:

clearCache(boolean includeDiskFiles); 清除缓存; 
clearHistory(); 清除历史  前进和后退; 
getSettings(); 获取WebSetting; 
goBack(); 返回上一页面; 
goForward(); 前一页面; 
loadUrl(String url); 打开一个页面; 
reload(); 重写加载当前页面; 
stopLoading(); 停止加载; 
setScrollBarStyle(int style); 指定; 
loadData("HTML String"); 加载HTML;

0 0
原创粉丝点击