探险王 發表於 2019-10-25 12:33:00

支付宝小程序开发——根据字符串生成二维码

<p>支付宝小程序开发中,如果需要根据字符串生成二维码,那么可以直接使用&nbsp;qrcode 插件,你无需引用js,直接使用开发者工具的npm功能就可以了。</p>
<p><strong>一. 安装插件:</strong></p>
<p>1.开发者工具左侧工具栏点击如图所示的图标(npm):</p>
<p><img src="https://img2018.cnblogs.com/blog/546882/201910/546882-20191025114023703-1741938194.png" alt=""></p>
<p>2.NPM包管理界面,输入框中输入 qrcode 并按回车键,等待插件安装完成:</p>
<p><img src="https://img2018.cnblogs.com/blog/546882/201910/546882-20191025114108590-486282114.png" alt=""><img src="https://img2018.cnblogs.com/blog/546882/201910/546882-20191025114245270-263999645.png" alt=""></p>
<p>&nbsp;</p>
<p><strong>二. 引用并使用插件:</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">引用插件</span>
<span style="color: rgba(0, 128, 128, 1)"> 2</span> const QRCode = require('qrcode'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span> <span style="color: rgba(0, 0, 0, 1)">Page({
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span> <span style="color: rgba(0, 0, 0, 1)">data: {
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span>   imgSrc: ''
<span style="color: rgba(0, 128, 128, 1)"> 6</span> <span style="color: rgba(0, 0, 0, 1)">},
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(0, 0, 0, 1)">onReady() {
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">根据字符串生成svn格式的二维码</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span>   let self = <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">10</span>   QRCode.toString('13549687961', { type: 'svg' }, <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(err, url) {
</span><span style="color: rgba(0, 128, 128, 1)">11</span>       let str = 'data:image/svg+xml;base64,' + Buffer(url).toString('base64'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(0, 0, 0, 1)">      self.setData({
</span><span style="color: rgba(0, 128, 128, 1)">13</span> <span style="color: rgba(0, 0, 0, 1)">      imgSrc: str
</span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(0, 0, 0, 1)">      })
</span><span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(0, 0, 0, 1)">    });
</span><span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">17</span>   ......</pre>
</div>
<p>页面引用:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">image </span><span style="color: rgba(255, 0, 0, 1)">src</span><span style="color: rgba(0, 0, 255, 1)">="{{imgSrc}}"</span><span style="color: rgba(255, 0, 0, 1)">style</span><span style="color: rgba(0, 0, 255, 1)">="width:100%;"</span><span style="color: rgba(255, 0, 0, 1)"> mode</span><span style="color: rgba(0, 0, 255, 1)">="aspectFit"</span> <span style="color: rgba(0, 0, 255, 1)">/&gt;</span></pre>
</div>
<p>如此,编译项目,二维码生成:</p>
<p><img src="https://img2018.cnblogs.com/blog/546882/201910/546882-20191025114818491-1385123596.png" alt=""></p>
<p>&nbsp;</p>
<p><strong>&nbsp;三. 需要生成多个券码的情况:</strong></p>
<p>如果是根据数组中的某个券码生成二维码,那么可以封装这个方法:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">根据字符串生成二维码</span>
<span style="color: rgba(0, 0, 0, 1)">getQrcode(str) {
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> qrcode=''<span style="color: rgba(0, 0, 0, 1)">
    QRCode.toString(str, { type: </span>'svg', errorCorrectionLevel: 'H', maskPattern: 4, version: 2 }, <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(err, url) {
      qrcode</span>= 'data:image/svg+xml;base64,' + Buffer(url).toString('base64'<span style="color: rgba(0, 0, 0, 1)">);
    });
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> qrcode
},</span></pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">将券码合成二维码并保存到卡券详情数据中</span>
arr.forEach(item=&gt;<span style="color: rgba(0, 0, 0, 1)">{
    console.log(item)
    item[</span>"qrcode"]=<span style="color: rgba(0, 0, 0, 1)">self.getQrcode(item.coupon_number)
})
self.setData({
    cardData: arr
})    </span></pre>
</div>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    个人原创博客,转载请注明来源地址:https://www.cnblogs.com/xyyt<br><br>
来源:https://www.cnblogs.com/xyyt/p/11737232.html
頁: [1]
查看完整版本: 支付宝小程序开发——根据字符串生成二维码