AndroidWebView 加载网页页面

来源:互联网 发布:数字油画需要什么软件 编辑:程序博客网 时间:2024/05/21 06:52
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标签,地址是相对路径<imgsrc='/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); 
原创粉丝点击