AndroidWebView 加载网页页面

WebView(网络视图)能加载显示网页。

1.1 布局文件中
    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
1.2java中设置加载页面
 **1.2.1  loadUrl 方法直接加载html页面

    //初时化控件(找到控件)
    WebView webview = (WebView) findViewById(R.id.webView1);
    //加载网络资源
    webview.loadUrl("http://www.studyyoun.com"); 

    //加载本地资源 
    //example.html 存放在assets文件夹内
    webView.loadUrl("file:///android_asset/example.html"); 


  *1.2.2  loadData 方法直接加载String类型的Html数据

 使用loadData方法来加载String类型的Html数据,会出现乱码,这是因为String 类型的数据主要是unicode编码,
 而webview 一般使用的是utf-8编码方式 ,所以在使用loadData方法来加载数据时要指定编码方式


 //String类型的html数据
  String content = ""; 
 //加载数据
  webView.loadData(content, “text/html”, “UTF-8”) ; 


  使用loadData方法来加载 html数据中不能包含'#‘, ’%‘, ’\‘, ’?‘四中特殊字符,
  出现这种字符就会出现解析错误,显示找不到网页还有部分html代码。因为css中经常用’#‘, ’%‘等字符,
  所以大部分网页会出现解析错误,需要如何处理呢?我们需要用UrlEncoder编码为%23, %25, %27, %3f 。
  也就是说在使用上述方法来加载 页面数据的时候 有可能会出现解析异常
 可以使用以下以下加载方式来解决这个问题,但是显示效果不太好,就是颜色排版效果也无法显示出来了

  //String类型的html数据
   String content = "";
  //加载数据
   webView.loadData(URLEncoder.encode(content, "utf-8"), "text/html", "utf-8") 




 *1.2.3 loadDataWithBaseURL 方法直接加载String类型的Html数据

void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl) 

 loadDataWithBaseURL()比loadData()多两个参数,
 可以指定HTML代码片段中相关资源的相对根路径,也可以指定历史Url,其余三个参数相同。

这里主要注意参数baseUrl,baseUrl指定了你的data参数中数据是以什么地址为基准的,
因为data中的数据可能会有超链接或者是image元素,而很多网站的地址都是用的相对路径,
如果没有baseUrl,webview将访问不到这些资源

String body ="示例:这里有个img标签,地址是相对路径<img
src='/case_picture/webview/android_webview_base_1.png"' />"; 
//加载数据
mWebView.loadDataWithBaseURL("http://www.studyyoun.com", body, "text/html", "utf-8",null); 

如果baseUrl没有指定为http://www.studyyoun.com,那么这张图片将显示不出来,
也就是说加载的图片的完整路径是baseUrl+图片中的地址。

  //完整的Html数据
  String body ="... ... ... "; 
  //加载数据 
  mWebView.loadDataWithBaseURL(null, body, "text/html", "utf-8",null); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值