因为小程序没法用webview,所以请求的json数据,特别是html数据只能通过转换成富文本进行渲染。
有个开源的组件挺好用的: wxParse
。
基本使用方法
1. Copy文件夹wxParse
- wxParse/
-wxParse.js(必须存在)
-html2json.js(必须存在)
-htmlparser.js(必须存在)
-showdown.js(必须存在)
-wxDiscode.js(必须存在)
-wxParse.wxml(必须存在)
-wxParse.wxss(必须存在)
-emojis(可选)
2. 引入必要文件
//在使用的View中引入WxParse模块
var WxParse = require('../../wxParse/wxParse.js');
//在使用的Wxss中引入WxParse.css,可以在app.wxss
@import "/wxParse/wxParse.wxss";
3. 数据绑定
var article = '<div>我是HTML代码</div>';
/**
* WxParse.wxParse(bindName , type, data, target,imagePadding)
* 1.bindName绑定的数据名(必填)
* 2.type可以为html或者md(必填)
* 3.data为传入的具体数据(必填)
* 4.target为Page对象,一般为this(必填)
* 5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选)
*/
var that = this;
WxParse.wxParse('article', 'html', article, that, 5);
4. 模版引用
//这里data中article为bindName
<template is="wxParse" data="{{wxParseData:article.nodes}}"/>
举个栗子:和这个项目方法一致 => html-view
请参考pages/index目录里的文件.
拷贝html-view目录到你的项目.
在页面的js/wxml/wxss中, 引入代码:
index.js
// 引入HtmlParser
const HtmlParser = require('../../html-view/index')
// ...
// 解析HTML字符串
const html = new HtmlParser('<p>hello world</p>').nodes
this.setData({ html })
index.wxml
<import src="../../html-view/index.wxml" />
<template is="html-view" data="{{data: html}}" />
index.wxss
@import "../../html-view/index.wxss";