WebView简易网页网络访问

本文介绍如何在Android应用中使用WebView加载网页,并实现基本的网络交互功能,包括加载URL、设置网页权限及处理点击链接等操作。通过示例代码详细解析关键步骤,助你轻松掌握WebView的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例代码块
html代码:
<html>
<head>
<title>JS交互</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<script type="text/javascript">
function invokedByJava(param) {
document.getElementById("content").innerHTML = "Java has invoked JS function and returnd the data
:"+param;
}
</script>
</head>
<body>
<id="content"></p>
<p>
<input type="button" value="调用Java方法" onclick="window.stub.jsMethod('来至JS的参数');" /
>
<input type="button" value="调用alert" onclick="alert('hello')" />
</p>
</body>
</html>


、WebView简介

Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView的组件;WebView(网络视图)
能加载显示网页


二、WebView的使用范例

WebView简单使用的步骤如下:
1)、在布局文件中声明WebView
2)、在Activity中实例化WebView
3)、需要在AndroidManifest.xml文件中添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
4)、调用WebViewloadUrl( )方法,设置WevView要显示的网页
5)、为了让WebView能够响应超链接功能,需要通过setWebViewClient( )设置WevViewClient
6)、如果想要知道网页加载进度等信息,需要通过setWebChromeClient()设置
WebChromeClient
WebView主要属性设置如下:
//设置滚动条样式
webview.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webview.setHorizontalScrollBarEnabled(false);
//加载网络页面
webview.loadUrl(url);
//加载本地html
webView.loadUrl("file:///android_asset/demo.html");
//加载html源码
webView.loadDataWithBaseURL("","html源码","text/html","utf-8","");
WebView网页现实的相关设置要通过WebSettings设置,如下:
WebSettings settings = webview.getSettings();
//支持JavaScript
settings.setJavaScriptEnabled(true);
//支持网页缩放
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
//设置网页缓存
settings.setAppCacheEnabled(true);// 开启缓存
ettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 缓存优先模式
settings.setAppCacheMaxSize(1024 1024);// 设置最大缓存为8M
//支持多窗口
settings.setSupportMultipleWindows(true);
重写WevViewClient
public class MyWebViewClient extends WebViewClient{
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
}
重写WebChromeClient
WebChromeClient mChromeClient new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
/**
支持alert效果
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, f inal
JsResult result) {
//此处可以弹出dialog
return true;
}
/**
处理JsConfirm
*/
public boolean onJsConfirm(WebView view, String url, String message,
final JsResult result) {
//此处可以弹出警告弹框
return true;
}
};

三、重写返回键实现点击返回键回退网页
       注意在支持JavaScript的网页就不需要判定给予的地址和返回地址是否一样(url。equals(webview.geturl()))