APICloud AVM框架 封装身份证号码虚拟输入键盘组件

身份证阅读器web开发示例,支持JS/H5、React、Vue.js、jQuery、Node.js、AngularJS、TypeScript、Electron、JSP、PHP、ASP等语言开发 1、最新适配支持了windows、Linux、安卓、国产系统(麒麟、统信)四大系统网页开发。3、支持身份证、社保卡、IC卡、银行卡、磁条卡等市场上常见卡类型读取识别。2、支持四种身份证类型读取。4、免驱安装,即插即用。 阅读详情

AVM(Application-View-Model)前端组件化开发模式基于标准Web Components组件化思想,提供包含虚拟DOM和Runtime的编程框架avm.js以及多端统一编译工具,完全兼容Web Components标准,同时兼容Vue和React语法糖编写代码,编译工具将Vue和React相关语法糖编译转换为avm.js代码。

基于标准 Web Components 组件化思想,兼容 Vue / React 语法特性,通过一次编码,分别编译为 App、小程序代码,实现多端开发。
 

组件功能介绍

身份证号码虚拟输入键盘,可用以身份证号码输入时使用,可对输入的身份证号码进行验证,支持15位和18位。

示例展示

组件开发

组件文件

id-card-keyboard.stml

<template>
	<view class="id-card-keyboard_container">
		<view class="id-card-keyboard_box">
			<view class="id-card-keyboard_box-header">
				<text class="id-card-keyboard_box-header-label">{idCard}</text>
				<text class="id-card-keyboard_box-header-button" @click="finish">完成</text>
			</view>
			<safe-area>			
				<view class="id-card-keyboard_box-item-container">
					<view class="id-card-keyboard_box-item" v-for="item in numbers">
						<view class="id-card-keyboard_box-item-label" v-if="item.type=='number'" data-key={item.key} @click="getNumber">
							<text style="font-size:28px;">{item.key}</text>
						</view>
						<view class="id-card-keyboard_box-item-label" v-else-if="item.type=='ico'" @click="delNumber">
							<image class="id-card-keyboard_box-item-ico" src={item.key} mode="widthFix"></image>
						</view>						
					</view>				
				</view>	
			</safe-area>				
		</view>
	</view>
</template>
<script>
	import checkIdcard from './id-card-check.js'
	export default {
		name: 'id-card-keyboard',
		data() {
			return{
				numbers:[{type:'number',key:'1'},{type:'number',key:'2'},{type:'number',key:'3'},{type:'number',key:'4'},{type:'number',key:'5'},{type:'number',key:'6'},{type:'number',key:'7'}
				,{type:'number',key:'8'},{type:'number',key:'9'},{type:'number',key:'X'},{type:'number',key:'0'},{type:'ico',key:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAtCAYAAAA5reyyAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAC4jAAAuIwF4pT92AAAC/UlEQVRo3u2aO2gUURSGv1k1PlFXUHwUQZEYlUACPiM2KbQSKxEkBEtbHyDxAWqjoK2gqIjYWJpC0gQLQUWjoBJUtBOMiWJMwJiYiGtxdtlzx1lndr07w4X7wcBm59xzcv655752wOPxeDwej8dJggxjtwGHgHagsQ7+fwHvgJvA1QzzrAv7gUKK12NgQdZJ22J3yuKVruf1SCbtEu4Cbqm/nyEl9hKYBGZYivMbyCMP66j6/gxwNuWcrXEMs0fcSynuKRXzY9Yi1EoHpnivUoydRyaUAvApayFqYQtSUiXxPgPLUoyfA0aKsYeyFqNaOjHFewisSNCuHRm7ZiaM0wQcB1ZH3JsNfMXBHniAv5cSSQgo95gBYH6M/XJggso9bI7y54yAzZjijZB8xg+AMZKNlw3Aa2U7HGHjnIAbgO8qqTFgY5U+9mI+gNsRNguBF5jirYuwc0rAFsozXqkEV9boaxvmg3iAjGcArcCguvcIWFLBj1MCvlVJvQHm/qe/9cC48nkf2E55zCsAH2J8OCPgVsyyW2PJbwuVt2fjwNqY9s4IeBpzuWKTDmSM0+L1A6sStK2rgDmLvvLq86Dl/7MfGVs1ozi8NYuik3Lv+GbR7yxErKgSfkL8AYQzJbwolNxFCz4D4KnyOQQcDsXpjfHhjIAAR7AnYiNSuiVf75FZGWSXM63u3fiHH6cEBBFNi3i3Bh9NmLuRAWBeyKYNmMKcuKLK2TkBAS5hininyvYDqu0UsuuIohX4qWz7ImycFBDkwFSL2F1F21KbaWBzjG34rDGMswICXA4ldyVhuz2I4M0J7XcBJ4GdEfecFhDgPKaIPSnHD4AvOHqgWiI8Jl5LMXYD8oOV0wKCrNe0iCdSitulYjpZwppwOfcCO5BeEiDLEBtXDlgMHMRc6ly3nVAWr3acQw4eNMPFRG3tzQuIgPpthB/I4cNoBjlb5wLpvpUwAWyqRyK23gSolj7kxGYpUgUB0gNtXpPFGD3APuS3E4/H4/F4PB6Pxwp/AGH7f53PGS6/AAAAAElFTkSuQmCC'}],
				numberIndex:0,
				resultNumber:[],
				idCard:''
			}
		},
		methods: {		
			getNumber(e){
				// console.log(JSON.stringify(e));
				if(this.data.numberIndex<18){
					this.data.resultNumber[this.data.numberIndex] = e.currentTarget.dataset.key;//兼容IOS和安卓
					this.data.numberIndex += 1;				
					this.data.idCard = this.data.resultNumber.join('');
				}
				
			},
			delNumber(e){
				this.data.numberIndex -= 1;	
				if(this.data.numberIndex>=0){
					this.data.resultNumber.splice(this.data.numberIndex,1);	
					this.data.idCard = this.data.resultNumber.join('');				
				}
			},
			finish(){
				if(!checkIdcard(this.data.idCard)){
					api.confirm({
						title: '提示',
						msg: '您输入的身份证号码不符合规则,是否继续使用?',
						buttons: ['确定', '取消']
					}, (ret, err)=> {
						var index = ret.buttonIndex;
						if(index==1){
							this.fire('setNumber',this.data.idCard);
						}				
					});
				}
				else{
					this.fire('setNumber',this.data.idCard);
				}					
			}
		}
	}
</script>
<style>
	.id-card-keyboard_container {
		position: absolute;
		height: 100%;
		width: 100%;
		background-color: rgba(0,0,0,0);
	}
	.id-card-keyboard_box{
		align-items: center;
		position: absolute;
		bottom: 0;
		width: 100%;
		background-color: #f0f0f0;
		border-top-left-radius: 30px;
		border-top-right-radius: 30px;
	}
	.id-card-keyboard_box-item-container{
		flex-flow:  row wrap;
		justify-content: space-around;
		align-items: center;
		padding: 10px;
		box-sizing: border-box;
	}
	.id-card-keyboard_box-item{
		flex-basis: 33%;
    	box-sizing: border-box;
		padding: 5px;
	}
	.id-card-keyboard_box-item-label{
		display: flex;
		background-color: #ffffff;
		padding: 5px;
		border-radius: 5px;
		width: 100%;
		height: 48px;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
	}
	.id-card-keyboard_box-item-ico{
		width: 60px;
	}
	.id-card-keyboard_box-header{
		width: 100%;
		flex-flow: row nowrap;
		justify-content: space-between;
		align-items: center;
		padding: 10px 15px 0 15px;
	}
	.id-card-keyboard_box-header-label{
		font-size: 18px;
	}
	.id-card-keyboard_box-header-button{
		font-size: 18px;
		color: #327432;
	}
</style>

组件使用说明

本组件是基于AVM.js开发的多端组件,通常同时适配Android、iOS、小程序、H5 , 具体支持情况还要看每个组件的说明文档。

首先需要登录开发平台,http://www.apicloud.com。 通过控制平台右上方的模块Store进入,然后选择AVM组件。

找到对应模块点击进入。

也可通过搜索栏,通过组件名称关键字进行检索。 

 进入模块详情,点击立即下载下载完整的组件安装包。  

组件压缩包的文件目录如下 

 也可通过查看模块文档 来了解模块的具体参数,引用的原生模块,注意事项等。 

 

具体在项目中的使用步骤是,第一步将压缩文件中的easy-id-card-keyboard.stml文件拷贝到项目的components目录,通过阅读readme.md 文档和查看demo示例文件 demo-id-card-keyboard.stml在需要开发的stml文件中,引入组件文件,完成页面的开发。

id-card-check.js文件,可根据实际项目放到对应的文件夹中,我放在了utils这个文件夹中。本插件基于ES6语法封装的,分装了checkIdcard方法校验身份证号码的有效性。

身份证号码的验证使用了正则验证,验证不通过会进行提示,可无视验证提示直接使用。

demo-id-card-keyboard.stml

<template>
	<view class="page">
		<safe-area></safe-area>
		<text class="number-box" @click="openNumberBoard">身份证号码:{idCard}</text>
		<id-card-keyboard
			onsetNumber="getNumber" 
			v-if="isShowNUmberBoard">
		 </id-card-keyboard>
	</view>
</template>
<script>
	import '../../components/id-card-keyboard.stml'
	export default {
		name: 'demo-id-card-keyboard',
		apiready(){//like created

		},
		data() {
			return{
				isShowNUmberBoard:false,
				idCard:''		
			}
		},
		methods: {
			closeNumberBoard(e){
				this.data.isShowNUmberBoard = false;
			},
			openNumberBoard(e){
				this.data.isShowNUmberBoard = true;
			},
			getNumber(e){
				// console.log(JSON.stringify(e));
				this.data.idCard = e.detail;
				this.data.isShowNUmberBoard=false;
			}
		}
	}
</script>
<style>
	.page {
		height: 100%;
		background-color: #ffffff;
	}
	.number-box{
		font-size: 20px;
	}
</style>

如果在AVM组件库中,没有找到实际项目中需要的组件,可以自己尝试封装组件。

这是组件化开发的在线文档地址

为身份证号码输入优化的iOS定制数字键盘 在当今移动互联网时代,用户对移动应用的体验要求日益增高,自定义键盘的出现,正是为了满足用户对输入效率和体验的更高追求。本章节我们将深入探讨自定义键盘的设计需求,从用户体验出发,分析设计前需要了解的要素和预期目标。随着移动应用的广泛使用,自定义键盘为用户提供了更加灵活和个性化的输入体验。Apple的UIKit框架为iOS开发者提供了丰富的组件和API,使得创建自定义键盘成为可能。本章节将深入探讨如何使用UIKit框架进行自定义键盘开发,并解析相关的实现细节。UIKit是iOS开发者不可或缺的一部分。 阅读详情

相关推荐

iOS自己实现身份证数字键盘

工程中输入身份证时,希望的到数字键盘来输入,但是数字键盘中没有x键,该工程完成这部分功能。通过代理实现,便于移植和优化.

vue实现自定义身份证,数字键盘(光标,输入框,键盘)

vue实现自封装身份证键盘(光标,输入框,键盘)组件介绍组件代码插入链接与图片组件使用引用使用参数介绍方法插槽 组件介绍 vue实现自封装身份证键盘(光标,输入框,键盘全手写) 组件代码 <template> <div class="myKeyboard" @click="handleFocus" @blur="handleBlur" tabindex="0"> <div class="input-container"> <!-- <d

阿铭的博客 4317

BrainVision Recorder 和 BrainVision Analyzer 2.2 安装

本篇为《EEG处理》系列博客的第二篇,该系列博客主要记录EEG信号处理的学习过程中的软件安装和学习过程,方便以后查阅。本篇为BrainVision Recorder 和 BrainVision Analyzer 2.2 的安装过程。 BrainVision Recorder 和 BrainVision Analyzer 2.2 安装安装前奏Brain Vision Analyzer分析软件 安装Brain Vision Recorder记录软件 安装推荐几款个人使用的科研软件 安装前奏 Brain V

梁小憨憨的博客 5062

自定义身份证输入键盘

iOS开发过程中难免会遇到各种自定义的视图和界面,原生系统不可能提供所有的雷同界面,就算键盘样式有8种,也满足不了产品各种变态的需求,今天提供一种输入时身份证专属键盘,讲白了就是自定义一个带x 的键盘,网上也有各种大神写的sdk,但是总感觉麻烦,废话免谈,都是程序猿,且看如下代码: 1、引用DefineIdentityKeyboardView文件内容(就一个文件,包含.h和.m) /***.h内容如下***/ #import <UIKit/UIKit.h> @interface DefineId

qq_21455683的博客 1132

RK3568(buildroot)利用squashfs+overlay实现嵌入式系统高可靠存储方案

本文详细介绍了在RK3568嵌入式平台上,基于Buildroot系统,利用squashfs只读根文件系统与overlayfs可写层相结合的高可靠存储方案。该方案能有效防止设备意外断电导致的系统文件损坏,通过内核配置、启动脚本编写及镜像制作,实现系统核心的只读保护与用户数据的持久化分离,显著提升嵌入式设备的现场稳定性。

weixin_29189381的博客 547

WorkBuddy驱动SolidWorks实测:AI建模流程、参数化与许可排查指南

AI辅助三维建模正在改变工程师的重复劳动方式。其核心理念不是替代人的设计决策,而是通过AI智能体接管CAD软件中的草图绘制、特征创建、尺寸修改等高频操作,让工程师从繁琐的GUI交互中解放出来。在SolidWorks这类主流CAD平台上,这类AI助手的落地依赖环境稳定、需求描述清晰和参数化建模规范。通过将外径、孔距等关键尺寸定义为全局变量并用方程式驱动,可实现改一个数、模型自动更新的高效流程;同时,遇到“无法获得许可”等环境故障时,需要按服务状态、安全软件隔离、干净卸载的顺序排查。以WorkBuddy驱动So

weixin_28559803的博客 366

VUE3 组件写法

【代码】VUE3 组件写法。

m0_66757598的博客 667

Python读取Matlab v7.3数据

文章目录Matlab保存数据Python读取 v7.3 Mat Matlab保存数据 在matlab设置中,常规->MAT文件,选择MATLAB版本7.3或更高版本保存数据。 注意保存数据的文件名为 corre.mat,保存的数据数组为data; 后面python的读取中会用到这两个参数 Python读取 v7.3 Mat 先安装hdf5storage库,再使用以下代码,就可以读取到mat中的数据,注意 import hdf5storage import numpy as np dataDi

weixin_43121914的博客 1081

java 18位身份证验证小组件idchecker

java 18位身份证验证小组件idchecker 源代码下载地址:http://www.zuidaima.com/share/1550463500012544.htm

springmvc_springdata的专栏 1375

第一百三十九回 介绍三个BLE包

本章回中主要介绍了Flutter中BLE的概念和操作方法,主要介绍了三个BLE包的功能和差异,以方便大家在BLE操作中选择不同的包。

talk_8的专栏 574

国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案

国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果

无名何许人的博客 3091

vue实现数字键盘

【代码】vue实现数字键盘。

qq_50616838的博客 1075

qq对接openclaw,通过qq发送命令

把 OpenClaw 接入 QQ 和微信,目前主流的微信文章和教程主要提供了两种截然不同的路径。我为你梳理了它们的核心区别和关键步骤,你可以根据自己的需求来选择。

suny8的专栏 270

每日一练编程题:键盘输入身份证号,判断此人是出生年月日以及性别,是否成年【Scanner、String、Character、Integer、Calendar 的使用】

Sacnner、String 、Character、Integer、Calendar的使用

m0_73940426的博客 970

stable-diffusion-webui的逐步部署教程

本文主要介绍了stable-diffusion-webui的逐步部署教程,希望能对使用Stable Diffusion的同学们有所帮助。 文章目录 1. 前言 2. 逐步部署教程 2.1 创建Python环境 2.2 安装依赖库 2.3 运行代码

weixin_43178406的博客 6万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

身份证号键盘输入限制开发总结

身份证号键盘输入限制开发总结:   需要注意的问题: 1, 输入框限制的输入字符 2,输入框限制的输入个数限制 3,不同样式的原生键盘,比如九宫格键盘,英文状态下,长按键盘方式输入字母x 会出现一次连出两个x的字符(即使已超过了限制的 位数), 并且由于对字符限制了位数不能再变化输入的内容,所以也不能删除单个字符 解决方式: 1,输入

drreamwork的博客 1101

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

分享一个前端验证插件

好久没有更博了年底了 项目太忙 分享一个最近在写的插件 前端验证表单,验证不通过报错 写的时间仓促,可能会有bug。。。恳请指正,已加完善 页面中的的dom结构为 姓名: 搭配css .rows { width: 400px; overflow: hidden;

前端学习日记 1647

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

APICloud AVM框架 实现导航栏菜单

AVM官方框架中有一个 frame-group的组件,在栏目较少的情况下是没有问题的,一般5个以上就会出现栏目记载一起的情况。 我在此组件的基础上,将栏目导航中view标签换成了 scroll-view标签,并设置成允许横向滚动。然后修改了标签的样式。 ......

白鱼赤乌的博客 784

APICloud AVM框架 封装数据表格组件

用以展示基础表格数据的组件。组件的核心功能点是在数据展示的时候,用到了2个v-for循环,第一层循环是数据对象的循环,然后嵌套列名的对象,通过列名中的key值在数据对象中查询对应的数据,这样就保证了在数据对象与列名对象顺序打乱的情况下也可以把数据对应起来,并能够在列名没有对应的数据的时候进行特殊处理。.........

白鱼赤乌的博客 414

使用APICloud AVM框架开发预约应用

前段时间跟朋友一起搞了一个预约的项目,前端用的APICloud的AVM框架做的,后端用的php开发的,用的tp5框架,没几天就搞出来了。简单跟大家分享一下开发中的一些功能点的实现吧。也欢迎大家一起探讨。 一、整理项目脑图 二、项目原型图 原型是用的码前做的,大家可以通过​​www.devbefore.com/protomobile/47942983009476608​​查看 三、项目前端 本项目中前端采用APICloud AVM多端开发技术进行开发,要点包括 swiper 轮播图、网络请求封装等。使用 A

qq_31307319的博客 691

验证码插件EasyCaptcha

我们自己编写验证码过于麻烦,所以一般会编写验证码插件或直接使用其他人的插件,这里推荐一个EasyCaptcha验证码插件,简单易用。 1.添加maven依赖 <!-- https://mvnrepository.com/artifact/com.github.whvcse/easy-captcha --> <dependency> <groupId>com.github.whvcse</groupId>

weixin_53402685的博客 4107

前端JS必用工具【js-tool-big-box】学习,通过身份证号获取生日、性别和年龄

方法名返回值入参正确则返回对象,属性为age birthday 和 gender;错误则返回false第一个参数必填,为字符串的身份证号码。

xingyu_qie的专栏 622

APICloud AVM框架封装密码输入框组件

带网格的输入框组件,可以用于输入密码、短信验证码等场景,通常与数字键盘组件配合使用。 支持自定义密码长度,支持加密和明文显示。

cuicuiniu521的博客 136

React虚拟键盘终极指南:使用react-simple-keyboard打造完美输入体验

想要为你的React应用添加一个功能强大的虚拟键盘吗?react-simple-keyboard正是你需要的解决方案!这款轻量级、高度可定制的虚拟键盘组件,能够为你的用户提供流畅的输入体验。 ## 核心功能特性详解 ### 灵活的键盘布局配置 - 支持多种键盘布局:标准QWERTY、数字键盘、特殊符号键盘 - 可自定义按键映射和功能键 - 响应式设计,自动适配不同屏幕尺寸 ### 深度定制能

gitblog_00245的博客 504

vue+vant只能输入数字、字母验证(身份证号码验证)

提示:本文是表单中对输入框的验证 文章目录前言一、新建文件1.判断字母或数字2.判断身份证号码2.页面中的使用总结 前言 这里主要写了两种,身份证验证:只能位数字或字母。 一、新建文件 1.判断字母或数字 在store/util/index.js下面写代码:。 import { Toast } from 'vant'; //数字+字母 export function policyNumber(string) { if (string) { if (/^[A-Za-z0-9]+$/.test

DW14687的博客 7689

Vue开发出的一版 18个input身份证输入的ScriptType脚本.vue文件

前17位数字 最后一个可带x的动态输入和动态删除,粘贴数据 页面显示部分: <div style="flex: 1; display: block" v-for="(item,index) in inputList" v-bind:key="index"> <input v-if="index!=17" ...

u011652925的博客 799
上一篇: APICloud AVM框架 封装虚拟数字键盘组件
下一篇: APICloud AVM框架 密码输入框组件
白鱼赤乌
博客等级 码龄10年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白鱼赤乌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值