更新记录
1.0.0
平台兼容性
云端兼容性
uni-app(4.06)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
uni-app x(4.06)
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
- |
- |
- |
- |
- |
- |
Poster-Code 二维码组件
poster-code
是一个用于生成和显示二维码的组件,支持自定义大小、颜色、添加Logo等功能。该组件基于Canvas绘制,支持多平台使用。
特性
- 生成高质量二维码
- 支持自定义二维码大小
- 支持自定义前景色和背景色
- 支持在二维码中间添加Logo图片
- 支持长按保存二维码
- 支持预览二维码
- 兼容多平台(H5、App、小程序等)
安装
在项目中导入 poster-ui
模块即可使用。
属性说明
属性名 |
类型 |
默认值 |
说明 |
cid |
String |
随机字符串 |
Canvas的ID,同一页面的多个二维码需要设置不同的cid |
size |
Number |
200 |
二维码大小,单位默认为px |
unit |
String |
'px' |
二维码尺寸单位 |
val |
String |
'' |
二维码内容,如URL等 |
background |
String |
'#ffffff' |
二维码背景色 |
foreground |
String |
'#000000' |
二维码前景色 |
pdground |
String |
'#000000' |
二维码定位点颜色 |
icon |
String |
'' |
二维码中间的Logo图片路径 |
iconSize |
Number |
40 |
Logo图片大小 |
lv |
Number |
3 |
二维码容错级别(1-4) |
onval |
Boolean |
true |
是否监听val值变化自动重新生成二维码 |
loadMake |
Boolean |
true |
是否在组件加载后自动生成二维码 |
allowPreview |
Boolean |
false |
是否允许点击预览二维码 |
useRootHeightAndWidth |
Boolean |
false |
是否使用根节点宽高作为二维码大小 |
事件
事件名 |
说明 |
返回参数 |
result |
二维码生成完成事件 |
二维码图片路径 |
longpressCallback |
长按二维码事件 |
二维码图片路径 |
preview |
预览二维码事件 |
{url: 二维码图片路径} |
使用示例
基础用法
<template>
<view>
<poster-code :cid="'qrcode1'" :size="150" val="https://example.com"></poster-code>
</view>
</template>
<script>
export default {
// ...
}
</script>
带Logo的二维码
<template>
<view>
<poster-code
:cid="'qrcode2'"
:size="150"
val="https://example.com"
:icon="logo">
</poster-code>
</view>
</template>
<script setup>
import logo from '@/static/logo.png';
</script>
自定义颜色
<template>
<view>
<poster-code
:cid="'qrcode3'"
:size="150"
val="https://example.com"
background="#f0f0f0"
foreground="#007AFF">
</poster-code>
</view>
</template>
完整示例
<template>
<view class="container">
<view class="qrcode-item">
<text class="title">基础二维码</text>
<poster-code
:cid="'qrcode1'"
:size="150"
val="https://example.com">
</poster-code>
</view>
<view class="qrcode-item">
<text class="title">带Logo的二维码</text>
<poster-code
:cid="'qrcode2'"
:size="150"
val="https://example.com"
:icon="logo">
</poster-code>
</view>
<view class="qrcode-item">
<text class="title">自定义颜色的二维码</text>
<poster-code
:cid="'qrcode3'"
:size="150"
val="https://example.com"
background="#f0f0f0"
foreground="#007AFF">
</poster-code>
</view>
</view>
</template>
<script setup>
import logo from '@/static/logo.png';
</script>
<style lang="scss" scoped>
.container {
padding: 20px;
}
.qrcode-item {
margin-bottom: 30px;
}
.title {
font-size: 16px;
margin-bottom: 10px;
display: block;
}
</style>
注意事项
- 在同一页面使用多个二维码组件时,需要为每个组件设置不同的
cid
- Logo图片建议使用透明背景的PNG图片
- 当设置了Logo时,建议提高二维码的容错级别(lv属性)
- 在小程序环境中使用时,需要注意小程序对Canvas的限制
方法
组件内部提供了一些方法,可以通过ref调用:
_makeCode()
: 手动生成二维码
_clearCode()
: 清除二维码
_saveCode()
: 保存二维码到相册