更新记录

1.0.0(2026-01-05) 下载此版本

新增

  • 初始版本发布
  • 基础手写签名功能
  • 支持 H5、微信/支付宝/百度/字节跳动/QQ 小程序、App 多端
  • 支持 Vue2 和 Vue3 双版本
  • 压感模式,模拟真实笔锋效果
  • 撤销/重做功能,支持配置历史记录长度
  • 丰富的配置项:画笔颜色、粗细、背景色等
  • 支持导出 PNG/JPG 图片
  • 支持自定义背景色和背景图片
  • 支持横屏签名模式
  • 支持占位提示文字
  • 支持工具栏位置配置(顶部/底部)
  • 支持自定义样式
  • 完整的事件回调
  • 支持通过 ref 调用组件方法

平台兼容性

uni-app(3.6.15)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- -

w-signature 手写签名板

一个功能丰富的 UniApp 手写签名板组件,支持多端、Vue2/Vue3 兼容。

特性

  • 多端兼容:H5、微信/支付宝/百度/字节跳动/QQ 小程序、App
  • Vue2/Vue3 双版本支持
  • 压感模式,模拟真实笔锋效果
  • 撤销/重做功能
  • 丰富的配置项
  • 支持导出图片
  • 支持自定义背景色/背景图
  • 支持横屏签名模式

安装

将插件导入到 uni_modules 目录下即可自动注册组件。

基本用法

<template>
  <w-signature
    ref="signatureRef"
    :height="300"
    @save="onSave"
  />
</template>

<script>
export default {
  methods: {
    onSave(result) {
      console.log('签名图片路径:', result.tempFilePath)
    }
  }
}
</script>

Props 属性

属性名 类型 默认值 说明
canvasId String 随机生成 画布ID
width String/Number '100%' 画布宽度
height String/Number 300 画布高度
penColor String '#000000' 画笔颜色
penWidth Number 3 画笔宽度
minWidth Number 2 压感模式下画笔最小宽度
maxWidth Number 6 压感模式下画笔最大宽度
backgroundColor String '#ffffff' 背景颜色
backgroundImage String '' 背景图片URL
disabled Boolean false 是否禁用
disableScroll Boolean true 是否禁止页面滚动
showToolbar Boolean true 是否显示工具栏
showUndo Boolean true 是否显示撤销按钮
showRedo Boolean true 是否显示重做按钮
showClear Boolean true 是否显示清除按钮
showSave Boolean true 是否显示保存按钮
undoText String '撤销' 撤销按钮文字
redoText String '重做' 重做按钮文字
clearText String '清除' 清除按钮文字
saveText String '保存' 保存按钮文字
placeholder String '请在此处签名' 占位提示文字
showPlaceholder Boolean true 是否显示占位提示
exportType String 'png' 导出图片类型(png/jpg)
exportQuality Number 1 导出图片质量(0-1)
pressure Boolean false 是否开启压感模式
landscape Boolean false 是否支持横屏签名
maxHistoryLength Number 20 最大历史记录长度
openSmooth Boolean true 是否开启笔锋平滑
smoothness Number 0.6 笔锋平滑度(0-1)
toolbarPosition String 'bottom' 工具栏位置(top/bottom)
customStyle Object {} 自定义样式对象

Events 事件

事件名 说明 回调参数
start 开始签名时触发 { point, event }
signing 签名过程中触发 { point, event }
end 结束签名时触发 { event }
save 保存签名时触发 { tempFilePath, isEmpty }
clear 清除签名时触发 -
undo 撤销时触发 -
redo 重做时触发 -
isEmpty 签名板空状态变化时触发 isEmpty: Boolean

Methods 方法

通过 ref 调用组件方法:

this.$refs.signatureRef.save()
方法名 说明 参数 返回值
save() 保存签名图片 - Promise<{tempFilePath, isEmpty}>
clear() 清除签名 - -
undo() 撤销上一步 - -
redo() 重做 - -
isCanvasEmpty() 判断签名板是否为空 - Boolean
getImageData() 获取Base64格式图片数据 - Promise
setPenColor(color) 设置画笔颜色 color: String -
setPenWidth(width) 设置画笔宽度 width: Number -
openLandscape() 打开横屏签名模式 - -

使用示例

压感模式(笔锋效果)

<w-signature
  :pressure="true"
  :minWidth="1"
  :maxWidth="8"
  :openSmooth="true"
  :smoothness="0.7"
/>

自定义工具栏

<w-signature
  ref="signature"
  :showToolbar="false"
/>
<button @click="$refs.signature.clear()">清除</button>
<button @click="$refs.signature.save()">保存</button>

获取 Base64 数据

const base64 = await this.$refs.signature.getImageData()

平台兼容性

功能 H5 微信小程序 App
基础签名
压感模式
撤销/重做
导出图片

License

MIT

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。