Skip to content

Latest commit

 

History

History
80 lines (74 loc) · 2.63 KB

qrcode.md

File metadata and controls

80 lines (74 loc) · 2.63 KB

qrcode(id, data, options)

二维码

参数 类型 描述
id string canvas 组件的唯一标识符
data string 文本内容
options object 配置项
options.typeNumber number 类型
options.errorCorrectLevel number 误差校正等级
options.width number canvas 组件的宽度
options.height number canvas 组件的高度
options.fgColor string 前景色
options.bgColor string 背景色

Example

<view class="page">
    <view class="page__hd">
        <view class="page__title">Qrcode</view>
        <view class="page__desc">二维码</view>
    </view>
    <view class="page__bd">
        <view class="weui-cells__title">请输入文字,即时输入即时生成</view>
        <view class="weui-cells weui-cells_after-title">
            <view class="weui-cell">
                <view class="weui-cell__bd">
                    <textarea value="{{ value }}" bindinput="bindinput" class="weui-textarea" placeholder="支持文本、网址和电子邮箱" style="height: 4.2em" maxlength="300" />
                    <view class="weui-textarea-counter">{{ value.length }}/300</view>
                </view>
            </view>
        </view>
        <view class="weui-cells__tips">提示:Canvas 在微信中无法长按识别, 点击图片进入保存页面长按图片可以保存</view>
        <canvas style="width: 200px; height: 200px; margin: 30px auto;" canvas-id="qrcode" bindtap="previewImage"></canvas>
    </view>
</view>
import { $wuxQrcode } from '../../components/wux'

Page({
    data: {
        value: '', 
    },
    onLoad() {
        this.renderQrcode('qrcode', 'https://github.com/skyvow/wux')
    },
    bindinput(e) {
        const value = e.detail.value

        this.setData({
            value, 
        })

        this.renderQrcode('qrcode', value)
    },
    previewImage() {
        wx.canvasToTempFilePath({
            canvasId: 'qrcode', 
            success: res => {
                wx.previewImage({
                    urls: [res.tempFilePath]
                })
            }
        })
    },
    randomColor() {
        const colorStr = Math.floor(Math.random() * 0xFFFFFF).toString(16).toUpperCase()
        const length = colorStr.length
        const prefixStr = `000000`.substring(0, 6 - colorStr.length)
        return `#${prefixStr}${colorStr}`
    },
    renderQrcode(canvasId, value) {
        $wuxQrcode.init(canvasId, value, {
            fgColor: this.randomColor()
        })
    },
})