使用WebView控件进行网络开发

本文介绍了如何在Android应用中使用WebView组件,包括XML中的写法,如loadUrl和loadData/WithDataWithBaseURL方法,以及处理中文乱码、支持JavaScript和自定义WebChromeClient的方法。
摘要由CSDN通过智能技术生成

WebView在XML中写法

<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

常用方法:

loadUrl(String url)   用于加载指定URL对应的网页

loadData(String data,String mimeType,String encoding)  用于将指定的字符串数据加载进浏览器,data为数据;mimeType为要显示内容的MIME类型,如为NULL默认text/html;encoding为编码方式(中文会出现乱码)

loadDataWithBaseURL(String baseURL,String data,String mimeType,String encoding,String historyURL)  基于URL加载指定数据(中文无乱码)

capturePicture()  用于创建当前屏幕快照

goBack()  执行后退操作,相当于浏览器上后退按钮

goForward()  执行前进操作,相当于浏览器上前进按钮

stopLoading()  停止加载

reload()  重新加载

1.加载网页 loadUrl() 即加载html文件

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

//支持放大缩小
WebSettings settings=webView.getSettings();
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);

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

上述代码运行时,需要访问网络资源,因此还需要在清单文件申请网络权限。

网页URL:  http://~~

本地HTML文件URL:  file://~~

2.执行HTML代码 loadData()  loadDataWithBaseURL()

在Android程序中,有一些文件提示信息使用HTML代码实现会比较简单快捷,而且界面也会更加美观。WebView类提供了 loadData() 和  loadDataWithBaseURL()方法加载HTML代码。当使用loadData() 方法来加载带中文的HTML代码时会产生乱码,但是使用loadDataWithBaseURL()方法就不会出现这种情况。

loadDataWithBaseURL(String baseURL,String data,String mimeType,String encoding,String historyURL) 参数解析

baseURL : 用于指定当前页使用的基本URL。如果为null,则使用默认的 about:blank ,即空白页。

data : 用于指定要显示的字符串数据。

mimeType : 用于指定要显示内容的MIME类型。如果为null,则默认使用 text/html

encoding : 用于指定数据的编码方式。如“  utf - 8 ”。

historyUrl : 用于指定当前页的历史URL,也就是进入该页面前现实页的URL。如果为null,默认 about:bank ,即默认页。

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

//支持放大缩小
WebSettings webSettings=webView.getSettings();
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

StringBuilder builder=new StringBuilder();
builder.append("<div>Text<div>");
builder.append("<ul>");
builder.append("<li>t1<li>");
builder.append("<li>t2<li>");
builder.append("</ul>");

webView.loadDataWithBaseURL(null,builder.toString(),"text/html","utf-8",null);
        

3.设置WebView控件支持JavaScript代码

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

WebSettings webSettings= webView.getSettings();
//支持放大缩小
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
//支持JavaScript
webSettings.setJavaScriptEnabled(true);
//支持弹出提示框-重写WebChromeClient中onJsAlert方法
webView.setWebChromeClient(new WebChromeClient());

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

上述代码运行时,需要访问网络资源,因此还需要在清单文件申请网络权限。

网页URL:  http://~~

本地HTML文件URL:  file://~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下嗷呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值