{"_id":"@crispychicken/zh-keyboard-vue","_rev":"5-8de38bc0415da52dd126f8e13e321daf","name":"@crispychicken/zh-keyboard-vue","dist-tags":{"latest":"0.4.8"},"versions":{"0.4.2":{"name":"@crispychicken/zh-keyboard-vue","version":"0.4.2","keywords":["keyboard","chinese","virtual-keyboard","vue","component","键盘","中文","虚拟键盘","拼音","手写"],"author":{"name":"crispyChicken999"},"license":"Apache 2.0","_id":"@crispychicken/zh-keyboard-vue@0.4.2","maintainers":[{"name":"crispychicken999","email":"1483091515@qq.com"}],"homepage":"https://github.com/crispyChicken999/zh-keyboard#readme","bugs":{"url":"https://github.com/crispyChicken999/zh-keyboard/issues"},"dist":{"shasum":"92e8007a392e5739802f24a99309c379d3848cbf","tarball":"https://registry.npmjs.org/@crispychicken/zh-keyboard-vue/-/zh-keyboard-vue-0.4.2.tgz","fileCount":23,"integrity":"sha512-8nyqJLs/M182kek0lq9r0WiBRX6wcjztqcGGE1GsZ4d8dQMhr45eQGnWAzOtT3Q4hf6oBbeg0Yo+ibHsl9V9hg==","signatures":[{"sig":"MEQCIBOsCSynLZkWzDwdahjJvMuGGfttmWNV8A/IM6YavpyuAiAG5AyoVppWUxcW97Gq0YbsZHMT8o5aWRXRVQsHEekCBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1900006},"main":"./dist/zh-keyboard-vue.umd.cjs","type":"module","_from":"file:crispychicken-zh-keyboard-vue-0.4.2.tgz","types":"./dist/lib.d.ts","module":"./dist/zh-keyboard-vue.js","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/zh-keyboard-vue.js","require":"./dist/zh-keyboard-vue.umd.cjs"},"./style.css":"./dist/style.css"},"scripts":{"dev":"vite --host","build":"vue-tsc -b && vite build","preview":"vite preview"},"_npmUser":{"name":"crispychicken999","email":"1483091515@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\7b3b0f29b3af8b54c135597109346baf\\crispychicken-zh-keyboard-vue-0.4.2.tgz","_integrity":"sha512-8nyqJLs/M182kek0lq9r0WiBRX6wcjztqcGGE1GsZ4d8dQMhr45eQGnWAzOtT3Q4hf6oBbeg0Yo+ibHsl9V9hg==","repository":{"url":"git+https://github.com/crispyChicken999/zh-keyboard.git","type":"git","directory":"packages/vue"},"_npmVersion":"11.6.2","description":"基于Vue的中文虚拟键盘组件","directories":{},"_nodeVersion":"24.10.0","dependencies":{"vue":"^3.5.13","@vueuse/core":"^13.1.0","pinyin-match":"^1.2.10","@crispychicken/zh-keyboard-core":"0.4.2","@crispychicken/zh-keyboard-recognizer":"0.4.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vue-tsc":"^2.2.8","typescript":"~5.7.2","@vue/tsconfig":"^0.7.0","sass-embedded":"^1.86.3","vite-plugin-dts":"^4.5.3","@vitejs/plugin-vue":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/zh-keyboard-vue_0.4.2_1769050727731_0.24647340625560066","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@crispychicken/zh-keyboard-vue","version":"0.4.4","keywords":["keyboard","chinese","virtual-keyboard","vue","component","键盘","中文","虚拟键盘","拼音","手写"],"author":{"name":"crispyChicken999"},"license":"Apache 2.0","_id":"@crispychicken/zh-keyboard-vue@0.4.4","maintainers":[{"name":"crispychicken999","email":"1483091515@qq.com"}],"homepage":"https://github.com/crispyChicken999/zh-keyboard#readme","bugs":{"url":"https://github.com/crispyChicken999/zh-keyboard/issues"},"dist":{"shasum":"1b371ea1c8467d6e0a9102a0c28d48bda16308bc","tarball":"https://registry.npmjs.org/@crispychicken/zh-keyboard-vue/-/zh-keyboard-vue-0.4.4.tgz","fileCount":23,"integrity":"sha512-VR3+F/mZdfBrKsG1JLxLDenDy20aWgoAUn+32lnpbtTHmBM5ZUfprQYreBjG207nK2pJgICIpHK74+cIikGStw==","signatures":[{"sig":"MEQCIH07IwRa37wopqgAsb9OqCxSuWxOObODnhdpQ/pCvZJuAiBDAGP3j9IPxu13S1X/O2FhHdroCuv5VEyQkiMdooO3ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6336655},"main":"./dist/zh-keyboard-vue.umd.cjs","type":"module","_from":"file:crispychicken-zh-keyboard-vue-0.4.4.tgz","types":"./dist/lib.d.ts","module":"./dist/zh-keyboard-vue.js","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/zh-keyboard-vue.js","require":"./dist/zh-keyboard-vue.umd.cjs"},"./style.css":"./dist/style.css"},"scripts":{"dev":"vite --host","build":"vue-tsc -b && vite build","preview":"vite preview"},"_npmUser":{"name":"crispychicken999","email":"1483091515@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\35f40adee802147ea82544376e6b3b1b\\crispychicken-zh-keyboard-vue-0.4.4.tgz","_integrity":"sha512-VR3+F/mZdfBrKsG1JLxLDenDy20aWgoAUn+32lnpbtTHmBM5ZUfprQYreBjG207nK2pJgICIpHK74+cIikGStw==","repository":{"url":"git+https://github.com/crispyChicken999/zh-keyboard.git","type":"git","directory":"packages/vue"},"_npmVersion":"11.6.2","description":"基于Vue的中文虚拟键盘组件","directories":{},"_nodeVersion":"24.10.0","dependencies":{"vue":"^3.5.13","@vueuse/core":"^13.1.0","pinyin-match":"^1.2.10","@crispychicken/zh-keyboard-core":"0.4.4","@crispychicken/zh-keyboard-recognizer":"0.4.4"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vue-tsc":"^2.2.8","typescript":"~5.7.2","@vue/tsconfig":"^0.7.0","sass-embedded":"^1.86.3","vite-plugin-dts":"^4.5.3","@vitejs/plugin-vue":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/zh-keyboard-vue_0.4.4_1769052632436_0.4508584433266971","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@crispychicken/zh-keyboard-vue","version":"0.4.5","keywords":["keyboard","chinese","virtual-keyboard","vue","component","键盘","中文","虚拟键盘","拼音","手写"],"author":{"name":"crispyChicken999"},"license":"Apache 2.0","_id":"@crispychicken/zh-keyboard-vue@0.4.5","maintainers":[{"name":"crispychicken999","email":"1483091515@qq.com"}],"homepage":"https://github.com/crispyChicken999/zh-keyboard#readme","bugs":{"url":"https://github.com/crispyChicken999/zh-keyboard/issues"},"dist":{"shasum":"7897490fc27efef8ed64011192174b4910ff1a54","tarball":"https://registry.npmjs.org/@crispychicken/zh-keyboard-vue/-/zh-keyboard-vue-0.4.5.tgz","fileCount":23,"integrity":"sha512-cpoWQydGk77MEBsUn+6/payqPAKcgqX1l6jS1BYIDAbp7KxZ0CWxNnfBBdp0eLN5WP1wzxqgGj9Jb8lpdv1yrg==","signatures":[{"sig":"MEQCIGUb0urePxSwPV9+yXryU/pN4+badrO2/dCoExMCTsC7AiBH+cz95h4gf4067pfM1+UXtZjvzDa8MaDz0nFpzEQ7dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6335267},"main":"./dist/zh-keyboard-vue.umd.cjs","type":"module","_from":"file:crispychicken-zh-keyboard-vue-0.4.5.tgz","types":"./dist/lib.d.ts","module":"./dist/zh-keyboard-vue.js","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/zh-keyboard-vue.js","require":"./dist/zh-keyboard-vue.umd.cjs"},"./style.css":"./dist/style.css"},"scripts":{"dev":"vite --host","build":"vue-tsc -b && vite build","preview":"vite preview"},"_npmUser":{"name":"crispychicken999","email":"1483091515@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\d879fed65e82b7170931df71c213de49\\crispychicken-zh-keyboard-vue-0.4.5.tgz","_integrity":"sha512-cpoWQydGk77MEBsUn+6/payqPAKcgqX1l6jS1BYIDAbp7KxZ0CWxNnfBBdp0eLN5WP1wzxqgGj9Jb8lpdv1yrg==","repository":{"url":"git+https://github.com/crispyChicken999/zh-keyboard.git","type":"git","directory":"packages/vue"},"_npmVersion":"11.6.2","description":"基于Vue的中文虚拟键盘组件","directories":{},"_nodeVersion":"24.10.0","dependencies":{"vue":"^3.5.13","@vueuse/core":"^13.1.0","pinyin-match":"^1.2.10","@crispychicken/zh-keyboard-core":"0.4.5","@crispychicken/zh-keyboard-recognizer":"0.4.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vue-tsc":"^2.2.8","typescript":"~5.7.2","@vue/tsconfig":"^0.7.0","sass-embedded":"^1.86.3","vite-plugin-dts":"^4.5.3","@vitejs/plugin-vue":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/zh-keyboard-vue_0.4.5_1769062312917_0.5604343501143783","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@crispychicken/zh-keyboard-vue","version":"0.4.6","keywords":["keyboard","chinese","virtual-keyboard","vue","component","键盘","中文","虚拟键盘","拼音","手写"],"author":{"name":"crispyChicken999"},"license":"Apache 2.0","_id":"@crispychicken/zh-keyboard-vue@0.4.6","maintainers":[{"name":"crispychicken999","email":"1483091515@qq.com"}],"homepage":"https://github.com/crispyChicken999/zh-keyboard#readme","bugs":{"url":"https://github.com/crispyChicken999/zh-keyboard/issues"},"dist":{"shasum":"1fc7e61be7af88a0983542aef7ae63da229c615c","tarball":"https://registry.npmjs.org/@crispychicken/zh-keyboard-vue/-/zh-keyboard-vue-0.4.6.tgz","fileCount":23,"integrity":"sha512-aHq6FXV68uAvAzs6P5Julbn6Q0L4Nk0zErDhpFI2SC5clCXTtiZJ6nH+/gSZFLSCelP7IzyCR7pTrxszXP6Dpw==","signatures":[{"sig":"MEYCIQDRbFVXCKxwVGJRszlZydoqUkQvP6emNkSLqqzZnTY8gwIhAOT2QZ05q86eMIPqyLbGoArqyNAhzUdosZGD0b9PaX/Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6335103},"main":"./dist/zh-keyboard-vue.umd.cjs","type":"module","_from":"file:crispychicken-zh-keyboard-vue-0.4.6.tgz","types":"./dist/lib.d.ts","module":"./dist/zh-keyboard-vue.js","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/zh-keyboard-vue.js","require":"./dist/zh-keyboard-vue.umd.cjs"},"./style.css":"./dist/style.css"},"scripts":{"dev":"vite --host","build":"vue-tsc -b && vite build","preview":"vite preview"},"_npmUser":{"name":"crispychicken999","email":"1483091515@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\5d09b8caafd682247cd4b5bdee47f22c\\crispychicken-zh-keyboard-vue-0.4.6.tgz","_integrity":"sha512-aHq6FXV68uAvAzs6P5Julbn6Q0L4Nk0zErDhpFI2SC5clCXTtiZJ6nH+/gSZFLSCelP7IzyCR7pTrxszXP6Dpw==","repository":{"url":"git+https://github.com/crispyChicken999/zh-keyboard.git","type":"git","directory":"packages/vue"},"_npmVersion":"11.6.2","description":"基于Vue的中文虚拟键盘组件","directories":{},"_nodeVersion":"24.10.0","dependencies":{"vue":"^3.5.13","@vueuse/core":"^13.1.0","pinyin-match":"^1.2.10","@crispychicken/zh-keyboard-core":"0.4.6","@crispychicken/zh-keyboard-recognizer":"0.4.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vue-tsc":"^2.2.8","typescript":"~5.7.2","@vue/tsconfig":"^0.7.0","sass-embedded":"^1.86.3","vite-plugin-dts":"^4.5.3","@vitejs/plugin-vue":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/zh-keyboard-vue_0.4.6_1769062924683_0.4959673850011179","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@crispychicken/zh-keyboard-vue","type":"module","version":"0.4.8","description":"基于Vue的中文虚拟键盘组件","author":{"name":"crispyChicken999"},"license":"Apache 2.0","repository":{"type":"git","url":"git+https://github.com/crispyChicken999/zh-keyboard.git","directory":"packages/vue"},"bugs":{"url":"https://github.com/crispyChicken999/zh-keyboard/issues"},"keywords":["keyboard","chinese","virtual-keyboard","vue","component","键盘","中文","虚拟键盘","拼音","手写"],"exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/zh-keyboard-vue.js","require":"./dist/zh-keyboard-vue.umd.cjs"},"./style.css":"./dist/style.css"},"main":"./dist/zh-keyboard-vue.umd.cjs","module":"./dist/zh-keyboard-vue.js","types":"./dist/lib.d.ts","dependencies":{"@vueuse/core":"^13.1.0","pinyin-match":"^1.2.10","vue":"^3.5.13","@crispychicken/zh-keyboard-core":"0.4.8","@crispychicken/zh-keyboard-recognizer":"0.4.8"},"devDependencies":{"@vitejs/plugin-vue":"^5.2.2","@vue/tsconfig":"^0.7.0","sass-embedded":"^1.86.3","typescript":"~5.7.2","vite":"^6.3.5","vite-plugin-dts":"^4.5.3","vue-tsc":"^2.2.8"},"scripts":{"dev":"vite --host","build":"vue-tsc -b && vite build","preview":"vite preview"},"_id":"@crispychicken/zh-keyboard-vue@0.4.8","homepage":"https://github.com/crispyChicken999/zh-keyboard#readme","_integrity":"sha512-Fol5WX7gZrFk0x8uoWTiccmnP6g7Go+vxg7cHlmo8YjOIgvfvjUPNzGhYiNpoYnkX8a/CKODKeCI41lMjNA6Fg==","_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\61fc9f84abd3d0b81d9865a5a599d41e\\crispychicken-zh-keyboard-vue-0.4.8.tgz","_from":"file:crispychicken-zh-keyboard-vue-0.4.8.tgz","_nodeVersion":"24.10.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Fol5WX7gZrFk0x8uoWTiccmnP6g7Go+vxg7cHlmo8YjOIgvfvjUPNzGhYiNpoYnkX8a/CKODKeCI41lMjNA6Fg==","shasum":"34ccc1b205e625a467870614dc192ba27061bc5c","tarball":"https://registry.npmjs.org/@crispychicken/zh-keyboard-vue/-/zh-keyboard-vue-0.4.8.tgz","fileCount":23,"unpackedSize":6341328,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFXU8Jv4qfUQ9840XMg6EpKwbtILc+TLarsnX55y4/gfAiEAwDdI0X38pnbrKsyeO26spS4WC+tgcLiQbaCeKUX6Xfw="}]},"_npmUser":{"name":"crispychicken999","email":"1483091515@qq.com"},"directories":{},"maintainers":[{"name":"crispychicken999","email":"1483091515@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zh-keyboard-vue_0.4.8_1769409676860_0.8772613031937266"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-22T02:58:47.649Z","modified":"2026-01-26T06:41:17.229Z","0.4.2":"2026-01-22T02:58:47.899Z","0.4.4":"2026-01-22T03:30:32.654Z","0.4.5":"2026-01-22T06:11:53.160Z","0.4.6":"2026-01-22T06:22:04.900Z","0.4.8":"2026-01-26T06:41:17.068Z"},"bugs":{"url":"https://github.com/crispyChicken999/zh-keyboard/issues"},"author":{"name":"crispyChicken999"},"license":"Apache 2.0","homepage":"https://github.com/crispyChicken999/zh-keyboard#readme","keywords":["keyboard","chinese","virtual-keyboard","vue","component","键盘","中文","虚拟键盘","拼音","手写"],"repository":{"type":"git","url":"git+https://github.com/crispyChicken999/zh-keyboard.git","directory":"packages/vue"},"description":"基于Vue的中文虚拟键盘组件","maintainers":[{"name":"crispychicken999","email":"1483091515@qq.com"}],"readme":"# 中文键盘组件库\r\n\r\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\r\n\r\n这是一个Vue 3的中文键盘组件库，支持拼音输入和手写输入。\r\n\r\n## 功能特点\r\n\r\n- 🔌 即插即用，自动绑定输入框\r\n- ✨ 支持拼音输入，带候选词选择功能\r\n- ✏️ 支持手写输入识别，支持连笔和简写\r\n- 🔧 可自定义手写识别算法\r\n- 📏 键盘大小可自定义缩放，灵活适配各种界面布局\r\n- 🌐 纯前端实现，可作为静态网页部署，无需服务端支持\r\n\r\n## 安装\r\n\r\n```bash\r\nnpm install @crispychicken/zh-keyboard-vue\r\n# 或者\r\nyarn add @crispychicken/zh-keyboard-vue\r\n# 或者\r\npnpm add @crispychicken/zh-keyboard-vue\r\n```\r\n\r\n## 属性\r\n\r\n### Props\r\n\r\n| 属性名           | 类型                              | 默认值    | 说明                                |\r\n| --------------- | --------------------------------- | -------- | ---------------------------------- |\r\n| defaultMode     | 'en' \\| 'zh' \\| 'hand' \\| 'num'  | 'en'     | 默认的键盘模式                      |\r\n| enableHandwriting| boolean                          | false    | 是否启用手写输入                    |\r\n| position        | 'static' \\| 'float' \\| 'bottom'  | 'static' | 键盘定位模式                       |\r\n| numKeys         | string[][]                   | -        | 数字键盘的行配置                    |\r\n\r\n### 事件\r\n\r\n| 事件名 | 参数类型 | 说明 |\r\n| ------ | -------- | ---- |\r\n| key    | KeyEvent | 当用户在键盘上点击按键时触发 |\r\n\r\n## 基本使用\r\n\r\n- 为了防止移动端设备弹出系统默认的键盘，建议在输入框上设置 `inputmode=\"none\"` 属性。\r\n- 此外，可以通过在输入框上设置 `data-inputmode` 属性来指定组件默认打开的键盘类型 (可选值为 `'en'`, `'zh'`, `'hand'`, `'num'`)，具体键盘模式的说明请参考 `defaultMode` 属性。\r\n\r\n```vue\r\n<script setup>\r\nimport { ZhKeyboard } from '@crispychicken/zh-keyboard-vue'\r\nimport { ref } from 'vue'\r\nimport '@crispychicken/zh-keyboard-vue/style.css'\r\n\r\nconst inputText = ref('')\r\n</script>\r\n\r\n<template>\r\n  <div>\r\n    <input v-model=\"inputText\" data-inputmode=\"en\" inputmode=\"none\" placeholder=\"点击使用键盘输入\" />\r\n    <!-- 静态定位的键盘 -->\r\n    <ZhKeyboard v-model=\"inputText\" />\r\n\r\n    <!-- 浮动定位的键盘（跟随输入框） -->\r\n    <ZhKeyboard v-model=\"inputText\" position=\"float\" />\r\n\r\n    <!-- 底部固定的键盘 -->\r\n    <ZhKeyboard v-model=\"inputText\" position=\"bottom\" />\r\n\r\n    <!-- 启用手写输入的键盘 -->\r\n    <ZhKeyboard v-model=\"inputText\" :enable-handwriting=\"true\" />\r\n\r\n    <!-- 数字键盘 -->\r\n    <ZhKeyboard v-model=\"inputText\" default-mode=\"num\" />\r\n  </div>\r\n</template>\r\n```\r\n\r\n## 输入模式\r\n\r\n### 拼音输入模式 (zh)\r\n\r\n拼音输入模式支持单字拼音输入，具有以下特性：\r\n\r\n- 支持单字模糊拼音匹配\r\n- 使用内置词库进行单字匹配\r\n- 支持中英文快速切换\r\n\r\n> 注：目前仅支持单个汉字的拼音输入，连续词组输入功能正在开发中\r\n\r\n### 英文输入模式 (en)\r\n\r\n标准的英文键盘布局，支持英文字母、数字和常用符号的输入。\r\n\r\n### 手写输入模式 (hand)\r\n\r\n手写输入模式允许用户通过手写输入汉字，启用此模式需要设置 `enableHandwriting` 为 `true`。\r\n\r\n### 数字输入模式 (num)\r\n\r\n数字输入模式提供一个数字和小数点键盘，方便用户输入数字、金额等。\r\n\r\n## 手写识别\r\n\r\n组件库支持自定义手写识别服务。您可以注册自己的手写识别服务来处理用户的手写输入。\r\n\r\n### 手写识别接口\r\n\r\n手写识别服务需要实现以下接口：\r\n\r\n```typescript\r\ninterface HandwritingRecognizer {\r\n  /**\r\n   * 初始化手写识别服务\r\n   * @returns 返回是否初始化成功\r\n   */\r\n  initialize(): Promise<boolean>\r\n\r\n  /**\r\n   * 识别手写笔迹\r\n   * @param strokeData 笔迹数据，格式为 x y c x y c ...，其中x和y是坐标，c表示是否为笔画的最后一点(1表示是，0表示否)\r\n   * @returns 识别结果列表\r\n   */\r\n  recognize(strokeData: number[]): Promise<string[]>\r\n\r\n  /**\r\n   * 关闭手写识别服务\r\n   */\r\n  close(): Promise<void>\r\n}\r\n```\r\n\r\n### 笔迹数据格式\r\n\r\n笔迹数据以数组形式存储，格式为 `[x1, y1, c1, x2, y2, c2, ...]`，其中：\r\n- `x`、`y` 是坐标点\r\n- `c` 表示是否为笔画的最后一点：1表示是最后一点，0表示不是\r\n\r\n例如，一个简单的笔画可能是：`[100, 150, 0, 101, 151, 0, 102, 152, 1]`，表示三个点的笔画，最后一个点是笔画的结束点。\r\n\r\n### 注册手写识别服务\r\n\r\n```typescript\r\nimport { registerHandwritingRecognizer } from 'zh-keyboard'\r\nimport { MyHandwritingRecognizer } from './MyHandwritingRecognizer'\r\n\r\n// 创建并注册您的手写识别服务\r\nconst recognizer = new MyHandwritingRecognizer()\r\nregisterHandwritingRecognizer(recognizer)\r\n```\r\n\r\n### 示例实现\r\n\r\n以下是一个简单的手写识别服务示例实现：\r\n\r\n```typescript\r\nimport type { HandwritingRecognizer } from 'zh-keyboard'\r\n\r\nexport class MyHandwritingRecognizer implements HandwritingRecognizer {\r\n  private initialized = false\r\n\r\n  async initialize(): Promise<boolean> {\r\n    console.log('初始化手写识别服务...')\r\n    // 在实际应用中，这里可能需要加载模型或连接到服务器\r\n    this.initialized = true\r\n    return true\r\n  }\r\n\r\n  async recognize(strokeData: number[]): Promise<string[]> {\r\n    if (!this.initialized) {\r\n      throw new Error('手写识别服务未初始化')\r\n    }\r\n\r\n    console.log('识别笔迹数据:', strokeData)\r\n\r\n    // 这里调用您的手写识别API\r\n    // 返回识别结果\r\n    return ['你', '我', '他', '好', '的']\r\n  }\r\n\r\n  async close(): Promise<void> {\r\n    console.log('关闭手写识别服务')\r\n    this.initialized = false\r\n  }\r\n}\r\n```\r\n\r\n## 生命周期\r\n\r\n1. 当手写输入组件挂载时，会自动调用手写识别服务的 `initialize()` 方法\r\n2. 当用户完成一个笔画时，会调用 `recognize()` 方法进行识别\r\n3. 当手写输入组件卸载时，会调用 `close()` 方法关闭手写识别服务\r\n","readmeFilename":"README.md"}