Android 混合开发 hybrid app -- 2

之前的项目中,在做webview的时候,遇到后台返回的数据是 html 标签的样子,并不是我们 通常用的 接口直接返回 的是 html 页面的形式。这种情况不多,但是像 网易新闻 的详情页都是直接返回的 html 标签代码。并不是 我们熟悉的 html 页面。所以今天就来总结一下,也算是混合开发中的一个知识点。

很多人都知道,我们正常的加载网页的方法:loadurl()能加载本地的html 页面也能加载 服务器上的页面。真的就这两种吗?no no no·····

后台给我们的接口地址,可能是我们的网页地址,也有可能是 html的json 语言字符串。例如:

<div id="tempInfo" style="height: 675px; width: 300px; background-color: rgb(157, 216, 235); margin: 0px auto;"><div id="myclock_1496215854531" class="myclock ui-draggable ui-draggable-handle" style="z-index: 11; left: -71px; top: 0px; position: absolute; transform: scale(0.6, 0.6);"><div class="display" style="z-index: 10"><div class="weekdays"><span>周一</span><span>周二</span><span class="active">周三</span><span>周四</span><span>周五</span><span>周六</span><span>周日</span></div><div class="ampm">下午</div><div class="digits"><div class="zero"><span class="d1"></span><span class="d2"></span><span class="d3"></span><span class="d4"></span><span class="d5"></span><span class="d6"></span><span class="d7"></span></div>

返回这样的json 数据的html body里面的内容。今天主要讲这种webview 怎么加载。

首先分析一下数据:这个后台返回的json数据 是html 内容,但是 没有

<html>

<head></head>

<body></body>

</html>  这些标签,也没有 css 和 js等

但是webview 给我们提供了这个方法:

webView.loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl);


对这个方法就是我们加载 html 标签语言来显示数据的。对于他们的参数下面用例子中讲。所以我们只要把后台返回的数据,如果没有 <html><head><body> 这些个标签时,我们要 拼接。简单例子:

WebView webView = new WebView(this);
StringBuilder htmlString = new StringBuilder();
htmlString.append("<html>");
htmlString.append("<head>");
htmlString.append("<title>欢迎你</title>");
//这里也可以 拼接 <link> 标签 导入我们的 css 文件
htmlString.append("</head>");
htmlString.append("<body>");
//这里拼接  你后台返回的 json 数据
htmlString.append("</body>");
htmlString.append("</html>");
//使用简单的loadData方法会导致乱码
//show.loadData(sb.toString(), "text/html", "utf-8");
webView.loadDataWithBaseURL(null,htmlString.toString(), "text/html", "utf-8", null);

这样我们就引入了,我们的html。就能看到界面了。但是这样就结束了,我们的界面肯定很丑。。。。

所以我们还要引入 .css 文件和.js文件。这些要我们自己写在Android的文件里面,


创建一个 file 文件 在编辑 名字的时候 要添加上 后缀名 比如:xxx.js 和 xxx.css 等。我们的js 和 css 都在这里面写。

这些写好之后我们在拼接 html 的地方 也拼接进去,css 就用 <link>标签,js就用 <script>标签,拼接到对应得位置。


但是这里要注意的是: 在拼接的时候,我们的 双引号 " xxx" 都要 转译 成 \" xxx\ " 才行。

注意:双引号要转译用\,每一个 双引号都要转译:例如:\"utf-8\",然后再增加对应的类名(转译)









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WangRain1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值