You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

x-virtual-keyboard

Package Overview
Dependencies
Maintainers
0
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

x-virtual-keyboard

虚拟键盘

1.0.1
latest
Source
npmnpm
Version published
Weekly downloads
2
-80%
Maintainers
0
Weekly downloads
 
Created
Source

项目需求

由于工业触控平板端在工厂流水线中无法方便使用外设键盘,需要开发一个虚拟键盘在输入框实现数字、英文以及相关符号的输入,因此实现了一个基于vue3+vite的虚拟键盘,具体实现源码可见源码链接。

实现效果

在这里插入图片描述

使用

主文件内容

<template>
  <div id="app">
    <div>
      <div>
        中文:<input
          style="width: 400px; height: 25px; font-size: 20px"
          type="text"
          v-model="value"
          keyboard="true"
        />
      </div>
      <div style="height: 400px"></div>
      <!-- {params: blurHide}:布尔值,ture为输入框失去焦点时自动隐藏键盘 -->
      <keyboard
        :transitionTime="'0.5s'"
        :maxQuantify="10"
        :showKeyboard="showKeyboard"
        @clickKey="clickKey"
        float
        :manyDict="manyDict"
        :singleDict="singleDict"
        @clickNumber="clickNumber"
        :blurHide="false"  
      ></keyboard>
    </div>
  </div>
</template>

<script setup>
import { ref } from "vue";
import keyboard from "./components/keyboard/keyboardIndex.vue";

const value = ref("");
const showKeyboard = ref(false);

//点击键盘的值
const clickKey = (key) => {
  // console.log("key-->>",key);
}
//点击键盘时数字的值
const clickNumber = (key) => {
  // console.log("key-->>",key);
}
const manyDict = ref("dict/chowder.json")
const singleDict = ref("dict/baseDict.json")
</script>

<style>
.keyDown {
  background: #2c3e50;
}
body {
  margin: 0px;
}
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

要想让键盘自动绑定上,input或textarea必须设置keyboard="true"属性

源码下载后使用pnpm安装依赖

pnpm install

input属性

属性说明备注
data-mode键盘类型cn中文
data-mode键盘类型en_cap英文大写
data-mode键盘类型en英文小写
data-mode键盘类型num数字键盘
data-mode键盘类型biaodian符号键盘
data-mode键盘类型password密码键盘
data-mode键盘类型id_card身份证键盘
data-mode键盘类型di_git带小数点的数字键盘
<input data-mode="en"/>  //通过在input内使用data-mode可以调整键盘显示样式

词库在本项目的src/dict目录下

引用词库示例

词库介绍

属性说明备注
baseDict.json单词汇词库基础词库
address.json多词汇词库全国省市区地址(主要)和一些短词句词库
chowder.json多词汇词库日常生活,成语,人名,全国省市区地址词库
``

组件属性

属性说明备注
singleDict单词汇词库baseDict.json要想使用汉字拼写功能此项必填
manyDict多词汇词库请看词库介绍可以根据不同场景使用不同的词库
maxQuantify显示选词个数Number默认 10
showKeyboard手动显示隐藏键盘true/false默认不需要自己手动传值
inputEvent手动传入可编辑的对象element用来处理可编辑元素
blurHide失去焦点是否自动隐藏键盘true/false
transitionTime键盘动画过渡时间String默认 '0.3s'
``

组件事件

事件说明备注
clickNumber点击数字符号触发key
clickKey点击字母空格触发key
del点击删除触发key如果是中文,会返回当前的拼音
changeMode键盘类型改变时触发data-mode
changeShow键盘显示和隐藏触发true/false
initResult词库加载事件success/fail成功和错误都会返回对应的结果
inputBindKeyboard重新给input绑定键盘使用:调用组件里面的inputBindKeyboard方法
contenteditableInput更改可编辑元素是触发的事件value

Keywords

vite

FAQs

Package last updated on 17 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts