微信小程式開發——使用wxParse外掛實現html程式碼的支援
阿新 • • 發佈:2018-11-09
前言:
大家都知道,無論是微信小程式還是支付寶小程式都不支援html程式碼的展示的,甚至說你想貼個純html程式碼做demo都不方便,更不用說解析html了。那麼怎麼解決這個問題呢?
解決方案:
使用WxParse外掛(微信小程式富文字解析元件)就能解決這個問題。本來這個外掛是專為微信小程式設計的,但是瞭解過支付寶小程式開發的同學們應該能猜到,這個外掛應該也支援支付寶小程式的(原因就不說了,大家懂的)。事實證明,這個外掛只需要做適當修改,就能給支付寶小程式使用。
外掛安裝:
https://github.com/icindy/wxParse
1. 下載檔案後,解壓壓縮檔案:
2. 把資料夾中的wxParse資料夾複製貼上到小程式根目錄下:
外掛使用:
1. 指令碼引入:
//在要使用wxParse的頁面的指令碼中引入WxParse模組 var WxParse = require('../../wxParse/wxParse.js');
2. 資料繫結:
var that = this /** * WxParse.wxParse(bindName , type, data, target,imagePadding) * 1.bindName繫結的資料名(必填) * 2.type可以為html或者md(必填) * 3.data為傳入的具體資料(必填) * 4.target為Page物件,一般為this(必填) * 5.imagePadding為當圖片自適應是左右的單一padding(預設為0,可選)*/ var article = '<div>我是HTML程式碼<img src="http://static.e-mallchina.com/pic/product/brand/detail/hgds.jpg"></img></div>'; WxParse.wxParse('article', 'html', article, that, 0); // 例項化物件
3. 樣式引入:
/*在對應的Wxss中引入WxParse.css,如果使用較多i,也可以直接在app.wxss中全域性引入*/ @import "/wxParse/wxParse.wxss";
4. 模板使用:
<!-- 引入模板 --> <import src="../../wxParse/wxParse.wxml" /> <!--這裡data中article為bindName --> <template is="wxParse" data="{{wxParseData:article.nodes}}" />
然後,重新編譯就可以了:
注意事項:
這個外掛其實也就是做了一些轉換工作,把html程式碼轉換成小程式自己的一些元件進行展示。經驗證如果在html程式碼中直接寫行內樣式的話,可能會被外掛的預設樣式覆蓋而不生效,這個時候就可以看下編譯後的wxml程式碼,針對對應的標籤進行樣式設定就好了。 高階用法: 1. 支援emojis小表情:示例程式碼:
/** * WxParse.emojisInit(reg,baseSrc,emojis) * 1.reg,如格式為[00]=>賦值 reg='[]' * 2.baseSrc,為儲存emojis的圖片資料夾 * 3.emojis,定義表情鍵值對 */ WxParse.emojisInit('[]', "/wxParse/emojis/", { "00": "00.gif", "01": "01.gif", "02": "02.gif", "03": "03.gif", "04": "04.gif", "05": "05.gif", "06": "06.gif", "07": "07.gif", "08": "08.gif", "09": "09.gif", "09": "09.gif", "10": "10.gif", "11": "11.gif", "12": "12.gif", "13": "13.gif", "14": "14.gif", "15": "15.gif", "16": "16.gif", "17": "17.gif", "18": "18.gif", "19": "19.gif", }); var emojis = ` <div> <h3>2. 支援emojis小表情</h3> <div style="margin-top:5px;"> <p>這裡可以解析出固定格式的emoji的表情</p> <p>[00][01][02][03][04][05][06][07][08][09]</p> </div> </div> ` WxParse.wxParse('emojis', 'html', emojis, that, 0); // 例項化物件
<!-- 引入模板 --> <import src="../../wxParse/wxParse.wxml" /> <template is="wxParse" data="{{wxParseData:article.nodes}}" />