android 好用的webview

Android 的 WebView 是一个非常强大的组件,它可以让我们在应用程序中嵌入 Web 页面,实现混合开发。在 Android 4.4 以前,WebView 的内核是基于 WebKit 的,而在 Android 4.4 以后,WebView 的内核改为了基于 Chromium 的。

使用 WebView 可以实现以下功能:

1. 在应用程序中嵌入 Web 页面,实现混合开发;

2. 加载本地 HTML 文件或者远程网页;

3. 支持 JavaScript 和 CSS;

4. 支持与 JavaScript 的交互;

5. 支持缩放、滚动、前进、后退等操作;

6. 支持 Cookie、表单、HTTP 认证等功能。

下面我们来详细介绍一下如何使用 WebView。

1. 加载本地 HTML 文件或者远程网页

使用 WebView 加载本地 HTML 文件或者远程网页非常简单,只需要调用 WebView 的 loadUrl() 方法即可。如下所示:

```

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

webView.loadUrl("https://www.baidu.com");

```

2. 支持 JavaScript 和 CSS

WebView 默认是不支持 JavaScript 和 CSS 的,需要通过设置 WebSettings 来开启。如下所示:

```

WebSettings webSettings = webView.getSettings();

webSettings.setJavaScriptEnabled(true);

webSettings.setDomStorageEnabled(true);

```

3. 支持与 JavaScript 的交互

WebView 可以通过 JavaScriptInterface 实现与 JavaScript 的交互。首先需要定义一个 Java 类,用来提供给 JavaScript 调用的方法。如下所示:

```

public class JsInterface {

@JavascriptInterface

public void showToast(String message) {

Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();

}

}

```

然后在 WebView 中设置 JavaScriptInterface。如下所示:

```

webView.addJavascriptInterface(new JsInterface(), "android");

```

在 JavaScript 中,可以通过 android.showToast() 来调用 Java 中的 showToast() 方法。

4. 支持缩放、滚动、前进、后退等操作

WebView 默认是支持缩放、滚动、前进、后退等操作的。我们可以通过设置 WebSettings 来修改默认的行为。如下所示:

```

WebSettings webSettings = webView.getSettings();

webSettings.setSupportZoom(false); // 禁止缩放

webSettings.setBuiltInZoomControls(false); // 隐藏缩放按钮

webSettings.setDisplayZoomControls(false); // 不显示缩放按钮

webSettings.setUseWideViewPort(true); // 支持viewport标签

webSettings.setLoadWithOverviewMode(true); // 支持缩放

```

5. 支持 Cookie、表单、HTTP 认证等功能

WebView 默认是支持 Cookie、表单、HTTP 认证等功能的。我们可以通过设置 CookieManager 和 WebViewClient 来修改默认的行为。如下所示:

```

CookieManager cookieManager = CookieManager.getInstance();

cookieManager.setAcceptCookie(true); // 启用Cookie

cookieManager.setAcceptThirdPartyCookies(webView, true); // 启用第三方Cookie

webView.setWebViewClient(new WebViewClient() {

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon) {

super.onPageStarted(view, url, favicon);

// 页面开始加载时的处理

}

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

// 处理页面跳转

view.loadUrl(url);

return true;

}

@Override

public void onPageFinished(WebView view, String url) {

super.onPageFinished(view, url);

// 页面加载完成时的处理

}

});

```

以上就是 Android 中 WebView 的一些基本用法和功能介绍。WebView 的使用非常灵活,可以根据具体的业务需求进行扩展和定制。