簡介 微信小程序中比如活動說明,簡介這樣的圖文介紹說明頁面,后臺通常配置成富文本編輯框,由后臺直接輸入內(nèi)容,然后在小程序界面展現(xiàn)。 但是富文本編輯提取到內(nèi)容是html格式的,寫法與小程序的wxml并不一致,那么怎么樣才能做到富文本能夠在小程序頁面中顯示呢?
解決辦法 有位大牛開發(fā)了一個模板叫作wxParse,可以直接引入小程序使用。下面把大牛的github地址貼上來: https://github.com/icindy/wxParse 想要了解更多的同學(xué)可以直接去他的github下查看說明文檔。
引入方式及使用方法 wxml文件代碼: <view class="container"> <scroll-view class="intro-box" scroll-y="true"> <view class="intro-live"> <!-- 引入模板 --> <import src="../../../components/wxParse/wxParse.wxml"/> <!-- 這里data中article為bindName --> <template is="wxParse" data="{{wxParseData:article.nodes}}"/> </view> </scroll-view> </view> 我的頁面結(jié)構(gòu),可以作為參考 下面是wxss頁面代碼,主要是引入wxParse.wxss,別的都是根據(jù)你自己頁面需要另外寫的。 @import "../../../components/wxParse/wxParse.wxss"; page{ width: 100%; height: 100%; background: #e4382e; overflow: auto; } 下面是js代碼: //獲取應(yīng)用實例 const app = getApp() //引入wxParse var WxParse = require('../../../components/wxParse/wxParse.js'); Page({ /** * 頁面的初始數(shù)據(jù) */ data: { }, /** * 生命周期函數(shù)--監(jiān)聽頁面加載 */ onLoad: function (options) { wx.showLoading({ title: '加載中', mask: true }) var that = this; console.log(options) that.setData({ activityId: options.activityId }) wx.request({ url: app.globalData.subDomain + '/GetActivityInfo', data: { token: app.globalData.token, activity: that.data.activityId }, method: 'POST', success: function(res){ //獲取html代碼 that.setData({ article: unescape(res.data.activity.aintroduct) }) WxParse.wxParse('article', 'html', that.data.article, that, 5); wx.hideLoading(); } }) } js部分要注意兩點: 第一點是在page函數(shù)之前引入wxParse 第二點是在獲取到html后執(zhí)行 WxParse.wxParse('article', 'html', that.data.article, that, 5) 其中的article就是獲取到的html代碼
小結(jié) 這類文章相信也有不少,我能學(xué)會使用既有同事幫忙,也自己查看了不少博客資料。這種組件的寫法還是老式的小程序?qū)懛ǎ〕绦蛐掳娴慕M件寫法已經(jīng)跟現(xiàn)在不一樣了,不知道這個插件的開發(fā)者以后會不會也轉(zhuǎn)換為最新的方式。總之,現(xiàn)在小程序還是支持這種寫法的。 如果有更好的實現(xiàn)方式,請一定要留下評論告知,謝謝。 |
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)