微目小程序是一款资讯媒体小程序,因为对富文本内容和媒体内容的展示有很高的要求。富文本解析方面,之前微魔小程序使用的是开源的wxParse组件,但是wxParse组件存在诸多问题,已经停止维护支持。随着微魔小程序功能的不断增加和优化,wxParse组件已经无法适应。wxParse的二次开发优化难度相当大。基于此,微魔团队考虑寻找更合适的解析组件。经过朋友的推荐和我们的考察,我们最终选择了开源组件:mp-html(https://jin-yufeng.gitee.io/m...,这个组件堪称解析富文本的利器mp-html组件经微魔团队二次开发,可完美兼容微魔小程序,微魔小程序专业版v3.8.0新增该组件。mp-html组件为富文本内容提供了很多优秀的功能,全面支持html标签,大部分小程序都是基于html标签来渲染显示内容,mp-html组件支持如下列表标签和属性,同时支持id、style,class,align,height,width属性。几乎完美兼容html标签内容,在显示上保持网页内容和小程序内容的兼容性,页面渲染性能非常强。组件是html的稳定性标签支持很好:1.标签名可以包含特殊字符如:(如o:p)2.标签名和属性名不区分大小写3.属性值可以不带引号,带单引号,或者带双引号,但是默认(默认为true)4.属性之间不能有空格(用引号隔开),空格(可以是多个),换行符5.支持普通格式,CDATA和其他形式的注释同时,对于一些错误情况,程序也能自动处理:1.标签首尾不匹配2.属性值中的冒号不匹配3.标签不匹配closed自定义样式配置样式(css)是富文本中最重要的内容之一,组件提供了多种样式设置方式,可以灵活自定义,让小程序的文字展示更加丰富。1.内联样式这是最常用的样式设置方法。可以直接将需要的样式放在对应标签的style属性中。该方法只对单个标签有效,优先级最高。2.tag-style是本组件特有的样式设置方法,可以为某个标签名设置一个默认的样式,可以通过tag-style属性进行设置。具体用法见对应说明3.外部样式如果要使用某些样式进行渲染,可以在tools/config.js的externStyle字段中添加。该方法只支持类选择器(2.1.0版本开始支持标签名选择器),优先级最低。当需要调整优先级时,可以通过设置!important来实现。另外,通过引入样式插件,还可以实现在样式标签中匹配样式的功能。显示以富文本内容加载的图像非常重要。mp-html充分考虑了小程序在图片显示上的特点,主要提供了以下功能:1.placeholderimage支持设置图片未加载时的placeholderimageloading-img和加载时的placeholderimageerror-img发生错误。2、当懒加载内容较长,图片较多时,启用懒加载有助于提升性能。它可以通过lazy-load属性打开。3.自动预览点击图片后,预览会自动放大。如果不需要,可以通过preview-img属性将其关闭。您还可以在imgtap事件中执行自定义处理。自动预览通过特定的处理,可以左右滑动查看所有图片,预览重复链接等效果。4.预览高清图片同一张图片可以设置不同的显示和预览链接地址,以达到最佳效果设置方法1:在img标签中添加一个original-src进行设置方法2:通过imgListapi设置5.长按弹出菜单微信、百度平台支持图片长按时弹出菜单,可以进行保存、分享等操作,如果不需要,可以通过show-img-menu属性关闭6.装饰图处理有时候对于一些小的装饰图,可能达不到上面的效果,这时候可以给img标签设置ignore属性,会屏蔽预览、弹出菜单等操作,提高体验。链接中src为数据url且未设置original-src的图片是默认无法预览的小图。7、支持原尺寸显示该组件通过合理的转换,基本实现了和html中img一样的效果:不设置宽度时原尺寸显示;设置宽度时按比例缩放;并在同时设置宽高时按设置值显示。无需考虑小程序中的模式等问题。.8、支持svg虽然小程序不支持svg系列标签,但是该组件通过在解析过程中将svg转换成dataurl图片实现了svg的显示。表格和列表小程序中没有表格标签,这使得显示表格成为问题。mp-html解决了这个问题,支持独立的水平滚动和合并单元格的表格。常用表格属性(边框、单元格间距、单元格填充、对齐)。该组件主要使用以下三种方法来显示表格显示方法。适用情况描述富文本标签表格中没有链接、图片等特殊标签。效果最好,几乎不需要转换。单元格需要转换,table、tr、td等标签转换成相应的布局。网格布局表格具有特殊标签并使用合并单元格,这需要复杂的转换。合并的单元格以网格布局显示。支持列表也非常友好,完全兼容html中的列表。1.支持多层嵌套支持嵌套多层列表。对于无序列表,不同的层级会显示不同的黑点格式。2、支持多种有序列表格式通过设置ol标签的type属性,可以显示数字、字母、罗马数字等多种形式的标签。3.支持不显示标签通过设置list-style:none支持li标签开头不显示标签。支持音视频对于音视频支持自动暂停、多源加载、自动添加控件。1.自动暂停在多个视频的情况下,同时播放可能会影响体验。该组件支持在播放一个视频时自动暂停所有其他视频。如果不需要,可以在导入音频前通过pause-video属性关闭音频,插件后也可以实现这种效果。2.多源加载不同的平台支持不同的播放格式。只设置一个src可能会出现兼容性问题,导致播放失败。因此,该组件支持像html一样设置视频和音频的多个来源,会依次加载,直到可以播放,最大程度的避免无法播放。3、自动添加控件对于既没有设置控件也没有设置自动播放的标签,控件属性会自动设置为true,避免无法播放,影响体验。支持多平台的小程序支持的小程序包括:微信小程序、QQ小程序、百度小程序、支付宝小程序、今日头条小程序
