美文网首页安卓开发
WebView用法详解

WebView用法详解

作者: 水固态中 | 来源:发表于2018-01-25 02:30 被阅读6次

1. 简介

WebView是一个基于webkit引擎、展现web页面的控件。

Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。

2. 作用

  • 显示和渲染Web页面

  • 直接使用html文件(网络上或本地assets中)作布局

  • 可和JavaScript交互调用

WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载、渲染、页面交互进行强大的处理。

3. 使用介绍

一般来说Webview可单独使用,可联合其子类一起使用,所以接下来,我会介绍:

  • Webview自身的常见方法;

  • Webview的最常用的子类

  • (WebSettings类、WebViewClient类、WebChromeClient类)

  • Android和Js的交互

3.1 Webview常用方法

我们都知道在Android上可以通过WebView加载网页,但是能否加载html的源码呢?答案是肯定的。一般条件下,我们可以在WebView上加载html的代码。

3.1.1 加载url

html文件

WebView wView = (WebView)findViewById(R.id.wv1);
WebSettings wSet = wView.getSettings(); 
wSet.setJavaScriptEnabled(true);
//打开本包内asset目录下的index.html文件
wView.loadUrl("file:///android_asset/index.html"); 

// 打开本地sd卡内的index.html文件 
wView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");

// 打开指定URL的html文件 
wView.loadUrl("http://wap.baidu.com");

使用 LoadData 或者 loadDataWithBaseURL方法加载html代码

有时候我们的webview可能只是html片段,而不是一个完整的网页,事实上绝大多数时候都是如此,完整的网页无需做成应用,而直接在浏览器访问。

这种情况我们使用 LoadData 或者 loadDataWithBaseURL方法,后者用的最多:

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

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

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

String content="<p><fontcolor='red'>hellobaidu!</font></p>";
webview.loadDataWithBaseURL(null,content,"text/html","UTF-8",null);//加载定义的代码,并设定编码格式和字符集。


添加css样式拼接html
实现新闻详情页面

String linkCss = "<style type=\"text/css\"> " +
                     "img {" + 
                           "width:100%;" +  
                           "height:auto;" +  
                     "}" +  
                     "body {" +  
                           "margin-right:15px;" +  
                           "margin-left:15px;" +  
                           "margin-top:15px;" +  
                           "font-size:45px;" +  
                     "}" +  
                  "</style>";
String html = "<html><header>" + linkCss + "</header>" + content + "</body></html>"; 
webView.loadData(html, "text/html", "uft-8");
//或者可以直接linkcss
String linkCss="<link href="file:///android_asset/目录/style.css" rel="stylesheet" type="text/css" media="all">"

相关文章

  • Android中的WebView详解

    Android中的WebView详解 WebView详解 基本用法 布局文件配置WebView WebView加载...

  • Android中的WebView详解

    WebView详解 基本用法 清单文件配置WebView

  • WebView用法详解

    1. 简介 WebView是一个基于webkit引擎、展现web页面的控件。 Android的Webview在低版...

  • 01 项目架构-Webview独立进程架构

    1 WebView基础 见WebView详解 2 为什么WebView要使用跨进程 3 独立进程WebView实现...

  • WebView详解

    一. WebView的基础用法 创建WebView: WebView的代理方法: 二. 获取WebView内容高度...

  • LiveData

    LiveDataBus实现原理#用法详解#LiveData扩展 LiveDataBus实现原理#用法详解#Live...

  • Android之网络编程

    一、简介 WebView HttpURLConnection OkHttp 二、WebView (1)用法介绍 创...

  • IOS学习(13)-UITextView

    UITextView详解iOS开发系列之四 – UITextView 用法小结UITextView控件的用法详解

  • Retrofit 入门

    Retrofit用法详解 参考:Retrofit 官方APIRetrofit用法详解(入门看这篇就够了) 一、简介...

  • android那些事--WebView拦截使用

    WebView最简单的用法就是loadUrl方法.常用代码如下. WebView拦截请求 WebView调用loa...

网友评论

    本文标题:WebView用法详解

    本文链接:https://www.haomeiwen.com/subject/qezpaxtx.html