# signature 写字板 > uniapp 写字板,可用业务签名等场景 > [查看更多 站点1](https://limeui.qcoon.cn/#/signature)
> [查看更多 站点2](http://liangei.gitee.io/limeui/#/signature) > Q群:1169785031 ## 平台兼容 | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | QQ 小程序 | App | | --- | ---------- | ------------ | ---------- | ---------- | --------- | --- | | √ | √ | √ | 未测 | 未测 | 未测 | √ | ## 代码演示 ### 基本用法 ```html ``` ### Vue/Nvue ```js export default { data() { return { title: 'Hello', penColor: 'red', penSize: 5, url: '', openSmooth: true } }, methods: { onClick(type) { if(type == 'openSmooth') { this.openSmooth = !this.openSmooth return } if (type == 'save') { this.$refs.signatureRef.canvasToTempFilePath({ success: (res) => { // 是否为空画板 无签名 console.log(res.isEmpty) // 生成图片的临时路径 // H5 生成的是base64 this.url = res.tempFilePath } }) return } if (this.$refs.signatureRef) this.$refs.signatureRef[type]() } } } ``` ### Uvue ```js import {LSignatureToTempFilePathOptions, LSignatureToFileSuccess} from '@/uni_modules/lime-signature' export default { data() { return { title: 'Hello', penColor: 'red', penSize: 5, url: '', openSmooth: true } }, methods: { onClick(type: string) { const signatureRef = this.$refs['signatureRef'] as LSignatureComponentPublicInstance // 不支持 if(type == 'openSmooth') { return } if (type == 'save') { signatureRef.canvasToTempFilePath({ success: (res: LSignatureToFileSuccess) => { // 是否为空画板 无签名 console.log(res.isEmpty) // 生成图片的临时路径 // H5 生成的是base64 this.url = res.tempFilePath } } as LSignatureToTempFilePathOptions) return } if(type == 'undo'){ signatureRef.undo() } if(type == 'redo'){ signatureRef.redo() } if(type == 'clear'){ signatureRef.clear() } } } } ``` ### 横屏 通过设置`landscape`,改变生成图片的方向,达到横屏的作用 ```html ``` ### 插件标签 - 默认 l-signature 为 component - 默认 lime-signature 为 demo demo使用了`uni-popup`,如果要看演示请自行导入这个插件 ## API ### Props | 参数 | 说明 | 类型 | 默认值 | | -------------- | ------------ | ---------------- | ------------ | | penSize | 画笔大小 | number | `2` | | minLineWidth | 线条最小宽 | number | `2` | | maxLineWidth | 线条最大宽 | number | `6` | | penColor | 画笔颜色 | string | `black` | | backgroundColor | 背景颜色(不填则为透明背景) | string | `` | | type | 指定 canvas 类型 **uvue暂不支持** | string | `2d` | | openSmooth | 是否模拟压感 **uvue暂不支持** | boolean | `false` | | beforeDelay | 延时初始化,在放在弹窗里可以使用 (毫秒) | number | `0` | | maxHistoryLength | 限制历史记录数,即最大可撤销数,传入0则关闭历史记录功能 | boolean | `20` | | landscape | 横屏 | boolean | `` | | disableScroll | 当在写字时,禁止屏幕滚动以及下拉刷新 | boolean | `true` | | disabled | 禁用 | boolean | `false` | | boundingBox | 只生成内容区域,即未画部分不生成,有性能的损耗(微信小程序pc/uvue不支持) | boolean | `false` | ### 事件 Events | 事件名 | 说明 | 回调 | | ------- | ------------ | -------------- | | undo | 撤消,回退到上一步 | | | clear | 清空,清空画板 | | | canvasToTempFilePath | 保存,生成图片,与官方保持一致,但不需要传canvasId | | ### 常见问题 - 放在弹窗里时,尺寸不对 可以延时手写板出现时机,给手写板加vif或beforeDelay="300" - boundingBox 微信小程序 pc / uvue 不支持, 因为获取不到 ImageData 数据 - backgroundColor 不能设置为`transparent`,填了也没用,我在代码里排除了。因为会导致微信小程序无法生成图片 ### 打赏 如果你觉得本插件,解决了你的问题,赠人玫瑰,手留余香。 ![](https://testingcf.jsdelivr.net/gh/liangei/image@1.9/alipay.png) ![](https://testingcf.jsdelivr.net/gh/liangei/image@1.9/wpay.png)