更新记录
1.0.0(2026-01-29) 下载此版本
多端支持:兼容 H5、微信小程序、App 等主流平台。 横竖屏切换:内置横屏模式,自动旋转坐标系,适合全屏签名场景。 笔画流畅:使用二次贝塞尔曲线连接点,笔迹圆润平滑。 功能丰富:支持撤销(Undo)、重写(Clear)、生成图片(Save)。 自定义样式:可配置笔触颜色、大小、背景色等。
平台兼容性
uni-app(3.6.15)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
x-signature 手写签名板
基于 uni-app 的手写签名组件,支持多端(H5、小程序、App),支持横屏/竖屏切换、撤销、清空、生成 Base64 图片等功能。
功能特点
- 多端支持:兼容 H5、微信小程序、App 等主流平台。
- 横竖屏切换:内置横屏模式,自动旋转坐标系,适合全屏签名场景。
- 笔画流畅:使用二次贝塞尔曲线连接点,笔迹圆润平滑。
- 功能丰富:支持撤销(Undo)、重写(Clear)、生成图片(Save)。
- 自定义样式:可配置笔触颜色、大小、背景色等。
引入方式
<script>
import xSignature from '@/components/x-signature/x-signature.vue';
export default {
components: {
xSignature
}
}
</script>
基本用法
<template>
<view>
<x-signature
ref="signature"
width="100%"
height="300px"
penColor="black"
:penSize="4"
></x-signature>
<button @click="clear">重写</button>
<button @click="undo">撤销</button>
<button @click="save">保存</button>
</view>
</template>
<script>
export default {
methods: {
clear() {
this.$refs.signature.clear();
},
undo() {
this.$refs.signature.undo();
},
async save() {
try {
const res = await this.$refs.signature.save();
console.log('保存路径:', res.tempFilePath);
console.log('Base64:', res.base64);
} catch (e) {
console.error('保存失败:', e.message);
}
}
}
}
</script>
API
Props 属性
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| canvasId | String | 'x-sig-canvas' | Canvas 的唯一标识 ID |
| width | String | '100%' | 组件宽度 |
| height | String | '300px' | 组件高度(竖屏模式下生效) |
| penColor | String | '#000000' | 笔触颜色 |
| penSize | Number | 4 | 笔触粗细(像素) |
| backgroundColor | String | 'transparent' | 画布背景色 |
| orientation | String | 'portrait' | 方向模式:'portrait' (竖屏) 或 'landscape' (横屏) |
Methods 方法
通过 ref 调用组件方法:
| 方法名 | 参数 | 返回值 | 说明 |
|---|---|---|---|
| clear() | - | - | 清空画布,重置历史记录 |
| undo() | - | - | 撤销上一步操作 |
| save() | - | Promise | 保存签名。成功返回 { tempFilePath, base64 },失败抛出 Error |
Events 事件
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| @start | 开始书写时触发 | - |
| @signing | 书写过程中持续触发 | event |
| @end | 书写结束(手指抬起)时触发 | - |
注意事项
-
横屏模式 (landscape):
- 当设置
orientation="landscape"时,组件会自动变为fixed定位,全屏覆盖,并旋转 90 度。 - 请确保父容器允许全屏遮罩。
- 横屏模式下,坐标系会自动映射,无需手动处理。
- 当设置
-
生成图片:
save()方法返回的base64数据在不同端(App/H5/小程序)已做兼容处理。- 若签名为空,
save()会抛出Error: Signature is empty。
-
App 端权限:
- App 端保存图片可能需要文件读写权限,请在
manifest.json中配置。
- App 端保存图片可能需要文件读写权限,请在

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 323
赞赏 2
下载 11173835
赞赏 1854
赞赏
京公网安备:11010802035340号