WebView

来源:互联网 发布:夏天手工坊淘宝网 编辑:程序博客网 时间:2024/05/29 02:12

WebView是Android用来显示网页的系统控件,它基于开源的浏览器引擎WebKit(在iOS中,UI控件UIWebView也是基于WebKit引擎;Chrome浏览器和Safari浏览器也是基于WebKit引擎的),下面将介绍控件WebView的基本用法。


声明访问互联网访问权限

在AndroidManifest 中声明互联网访问权限:

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

给ViewView设置属性

  • 是否支持JavaScript
mWebView.getSettings().setJavaScriptEnabled(boolean flag);
  • 1
  • 1

  • 是否支持缩放
mWebView.getSettings().setSupportZoom(boolean support);
  • 1
  • 1

  • 是否显示缩放工具
mWebView.getSettings().setBuiltInZoomControls(boolean enabled);
  • 1
  • 1

  • 默认的字体大小
mWebView.getSettings().setDefaultFontSize(int size);
  • 1
  • 1

加载内容

  • 加载Internet上的网页
mWebView.loadUrl("http://www.apple.com.cn");
  • 1
  • 1

  • 加载本地网页

文件存放在assets目录下。新建一个test子文件夹

mWebView.loadUrl("file:///android_asset/test/HelloWorld.html"); 
  • 1
  • 1

  • 加载HTML代码片段数据
String htmlString = "<h1>Android</h1><p>Hello World !<br /></p>";mWebView.loadData(htmlString, "text/html", "utf-8");
  • 1
  • 2
  • 1
  • 2

点击链接时指定是否使用系统浏览器打开

在WebView中点击链接时,默认情况下,会打开系统浏览器。可以指定某个链接是用WebView打开还是用系统浏览器打开。

mWebView.setWebViewClient(new WebViewClient() {        @Override      public boolean shouldOverrideUrlLoading(WebView view, String url)      {         if(Uri.parse(url).getHost().equals("www.baidu.com"))         {              // 将特定的链接用WebView打开              return false;         }         // 其他链接用系统浏览器打开         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));         startActivity(intent);         return true;      }});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

点击“Back”键回退打开的网页

点击“Back”键时,默认情况下,会关掉整个浏览器。如果不希望关闭整个浏览器,而是回退已打开的网页,那么需要在当前Activity中处理并消费掉该Back事件。

public boolean onKeyDown(int keyCode, KeyEvent event) {     if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {             mWebView.goBack();             return true;      }      return false; }
0 0