CN117572974B - 基于定制键盘的信息输入方法、装置、电子设备及介质 - Google Patents
基于定制键盘的信息输入方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN117572974B CN117572974B CN202410052769.1A CN202410052769A CN117572974B CN 117572974 B CN117572974 B CN 117572974B CN 202410052769 A CN202410052769 A CN 202410052769A CN 117572974 B CN117572974 B CN 117572974B
- Authority
- CN
- China
- Prior art keywords
- input
- keyboard
- key
- page
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 147
- 230000009471 action Effects 0.000 claims abstract description 137
- 230000006870 function Effects 0.000 claims description 162
- 238000003825 pressing Methods 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 32
- 230000001052 transient effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 17
- 238000005316 response function Methods 0.000 claims description 14
- 238000011068 loading method Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000010271 massa medicata fermentata Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本申请涉及计算机技术领域,提供了一种基于定制键盘的信息输入方法、装置、电子设备及介质。该方法通过将定制键盘信息输入中的各功能,采用输入控件分别控制信息输入页面和键盘页面,通过配置文件为信息输入页面的各待输入信息位配置对应的键盘页面,并在各键盘页面通过识别目标动作、确定目标关联事件、调用代理函数并返回执行结果的方式实现各信息位的信息输入,使得该信息输入方法能够使用于多种不同的定制键盘输入,提高了基于定制键盘进行信息输入的通用性,提升了信息输入效率,提高了用户体验。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于定制键盘的信息输入方法、装置、电子设备及介质。
背景技术
在车辆相关应用中,车牌号的输入是一项常见功能。车牌号键盘的存在,为车牌号输入提升了用户体验,并且可避免用户误输入车牌号规则下不应有的错字,例如第1位省份不是我国现存允许的省份,或第2位输入了数字等。采用这种方式,当输入从客户端传到服务器端时,无论哪一端都已不需要做任何格式校验,因为客户端在键盘层就做好了约束,提升了性能。
目前常见的车牌号键盘输入实现方法主要包括以下两种:
1、在输入第一位车牌号时限定使用非数字键盘,在后面的输入中限定使用数字+字母键盘。这种实现方式让用户输入的字的范围太广,不利于控制输入的范围。例如车牌号中,字母O只可在省份后第一位输入,其余位O是不能输入的,但是这种方案没办法做到这种规约。
2、开发自定义的车牌号键盘。此时键盘其实是一个视图,而不是一个真正的键盘,当用户点击输入控件时,禁止输入控件本身的键盘事件,从而不调起系统键盘,而把自定义的车牌号视图弹出。在某些情况下,输入控件本身就是不是一个输入控件,而是一个视觉上和输入控件长得一模一样的控件。当用户点击其中的键后,把对应的输入填充到界面上的输入控件中。
这种实现方式由于它的实现上不是一个键盘,所以关于输入控件的一切动作,如弹出键盘、用户按下后退、按下某个键后,等都需要用程序来控制,实现上比较复杂,而这种常规的键盘输入动作,原本可以不必用程序控制的,只需要接受系统的回调就好。并且,由于是用代码控制的逻辑,当车牌号规则有所变化时,例如近几年的新能源车牌号多了一位,修改起来较为复杂。
发明内容
有鉴于此,本申请实施例提供了一种基于定制键盘的信息输入方法、装置、电子设备及介质,以解决现有技术中基于定制键盘进行信息输入时效率较低的问题。
本申请实施例的第一方面,提供了一种基于定制键盘的信息输入方法,包括:
响应于接收到用户发送的信息输入请求,调用输入控件,根据输入控件中的第一配置文件显示待输入信息页面和定制键盘的键盘页面,其中,待输入信息页面中包括多个待输入信息位,键盘页面包括多个键视图,每个键视图对应一个键盘按钮;
设置待输入信息页面中的待输入信息位为待输入信息中的第一输入位;
基于输入控件的第二配置文件更新键盘页面为待输入信息位对应的目标键盘页面;
获取用户对目标键盘页面中目标键视图进行操作的第一目标动作,基于第一目标动作确定目标键视图的第一目标关联事件;
调用第一目标关联事件对应的代理函数,执行第一目标动作并返回第一执行结果;
在待输入信息位中输入第一执行结果;
更新待输入信息页面中的待输入信息位为待输入信息中的下一输入位,重复执行更新键盘页面、获取用户的第一目标动作、基于第一目标动作确定第一目标关联事件、调用第一目标关联事件对应的代理函数执行第一目标动作并返回第一执行结果、在待输入信息位中输入第一执行结果步骤,直至遍历待输入信息页面中的所有输入位。
本申请实施例的第二方面,提供了一种基于定制键盘的信息输入装置,包括:
显示模块,被配置为响应于接收到用户发送的信息输入请求,调用输入控件,根据输入控件中的第一配置文件显示待输入信息页面和定制键盘的键盘页面,其中,待输入信息页面中包括多个待输入信息位,键盘页面包括多个键视图,每个键视图对应一个键盘按钮;
设置模块,被配置为设置待输入信息页面中的待输入信息位为待输入信息中的第一输入位;
更新模块,被配置为基于输入控件的第二配置文件更新键盘页面为待输入信息位对应的目标键盘页面;
获取模块,被配置为获取用户对目标键盘页面中目标键视图进行操作的第一目标动作,基于第一目标动作确定目标键视图的第一目标关联事件;
执行模块,被配置为调用第一目标关联事件对应的代理函数,执行第一目标动作并返回第一执行结果;
输入模块,被配置为在待输入信息位中输入第一执行结果;
迭代模块,被配置为更新待输入信息页面中的待输入信息位为待输入信息中的下一输入位,重复执行更新键盘页面、获取用户的第一目标动作、基于第一目标动作确定第一目标关联事件、调用第一目标关联事件对应的代理函数执行第一目标动作并返回第一执行结果、在待输入信息位中输入第一执行结果步骤,直至遍历待输入信息页面中的所有输入位。
本申请实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例通过将定制键盘信息输入中的各功能,采用输入控件分别控制信息输入页面和键盘页面,通过配置文件为信息输入页面的各待输入信息位配置对应的键盘页面,并在各键盘页面通过识别目标动作、确定目标关联事件、调用代理函数并返回执行结果的方式实现各信息位的信息输入,使得该信息输入方法能够使用于多种不同的定制键盘输入,提高了基于定制键盘进行信息输入的通用性,提升了信息输入效率,提高了用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例的应用场景的场景示意图。
图2是本申请实施例提供的一种基于定制键盘的信息输入方法的流程示意图。
图3(A)是本申请实施例提供的待输入信息页面和键盘页面的示意图。
图3(B)是本申请实施例提供的待输入信息页面和键盘页面的示意图。
图4是本申请实施例提供的另一种基于定制键盘的信息输入方法的流程示意图。
图5是本申请实施例提供的大键显示预览的示意图。
图6是本申请实施例提供的又一种基于定制键盘的信息输入方法的流程示意图。
图7是本申请实施例提供的调用手势响应函数执行点击动作的方法的流程示意图。
图8是本申请实施例提供的为第一成员变量赋值的方法的流程示意图。
图9是本申请实施例提供的为第二成员变量赋值的方法的流程示意图。
图10是本申请实施例提供的再一种基于定制键盘的信息输入方法的流程示意图。
图11是本申请实施例提供的另外一种基于定制键盘的信息输入方法的流程示意图。
图12是本申请实施例提供的再另外一种基于定制键盘的信息输入方法的流程示意图。
图13是本申请实施例提供的代理事件传递链的示意图。
图14是本申请实施例提供的一种基于定制键盘的信息输入装置的示意图。
图15是本申请实施例提供的电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面将结合附图详细说明根据本申请实施例的一种基于定制键盘的信息输入方法和装置。
图1是本申请实施例的应用场景的场景示意图。该应用场景可以包括终端设备1、2和3、服务器4以及网络5。
终端设备1、2和3可以是硬件,也可以是软件。当终端设备1、2和3为硬件时,其可以是具有显示屏且支持与服务器4通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等;当终端设备1、2和3为软件时,其可以安装在如上所述的电子设备中。终端设备1、2和3可以实现为多个软件或软件模块,也可以实现为单个软件或软件模块,本申请实施例对此不作限制。进一步地,终端设备1、2和3上可以安装有各种应用,例如数据处理应用、即时通信工具、社交平台软件、搜索类应用、购物类应用等。
服务器4可以是提供各种服务的服务器,例如,对与其建立通信连接的终端设备发送的请求进行接收的后台服务器,该后台服务器可以对终端设备发送的请求进行接收和分析等处理,并生成处理结果。服务器4可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心,本申请实施例对此不作限制。
需要说明的是,服务器4可以是硬件,也可以是软件。当服务器4为硬件时,其可以是为终端设备1、2和3提供各种服务的各种电子设备。当服务器4为软件时,其可以是为终端设备1、2和3提供各种服务的多个软件或软件模块,也可以是为终端设备1、2和3提供各种服务的单个软件或软件模块,本申请实施例对此不作限制。
网络5可以是采用同轴电缆、双绞线和光纤连接的有线网络,也可以是无需布线就能实现各种通信设备互联的无线网络,例如,蓝牙(Bluetooth)、近场通信(Near FieldCommunication,NFC)、红外(Infrared)等,本申请实施例对此不作限制。
用户可以通过终端设备1、2和3经由网络5与服务器4建立通信连接,以接收或发送信息等。具体地,终端设备1、2和3可以发送信息输入请求至服务器4,服务器4在接收到信息输入请求后,调用输入显示和控制待输入信息页面和键盘页面。另一方面,输入控件也可以直接安装与终端设备1、2和3,此时终端设备1、2和3无需与服务器4建立通信连接。
需要说明的是,终端设备1、2和3、服务器4以及网络5的具体类型、数量和组合可以根据应用场景的实际需求进行调整,本申请实施例对此不作限制。
上文提及,现有的车牌号输入方法中,在输入第一位车牌号时限定使用非数字键盘,在后面的输入中限定使用数字+字母键盘的方式让用户输入的字的范围太广,不利于控制输入的范围,后续需要进一步校验。同时,目前自定义的车牌号键盘基于一个视图实现,因此所有与输入控件相关的动作均需要通过程序控制,导致资源浪费且效率低下。进一步的,当车牌号规则发生变化时,需要对程序代码进行修改,实现复杂。
鉴于此,本申请实施例提供了一种基于定制键盘的信息输入方法,通过将定制键盘信息输入中的各功能,采用输入控件分别控制信息输入页面和键盘页面,通过配置文件为信息输入页面的各待输入信息位配置对应的键盘页面,并在各键盘页面通过识别目标动作、确定目标关联事件、调用代理函数并返回执行结果的方式实现各信息位的信息输入,使得该信息输入方法能够使用于多种不同的定制键盘输入,提高了基于定制键盘进行信息输入的通用性,提升了信息输入效率,提高了用户体验。
图2是本申请实施例提供的一种基于定制键盘的信息输入方法的流程示意图。图2的基于定制键盘的信息输入方法可以由图1的终端设备执行。如图2所示,该基于定制键盘的信息输入方法包括如下步骤:
在步骤S201中,响应于接收到用户发送的信息输入请求,调用输入控件,根据输入控件中的第一配置文件显示待输入信息页面和定制键盘的键盘页面。
其中,待输入信息页面中包括多个待输入信息位,键盘页面包括多个键视图,每个键视图对应一个键盘按钮。
在步骤S202中,设置待输入信息页面中的待输入信息位为待输入信息中的第一输入位。
在步骤S203中,基于输入控件的第二配置文件更新键盘页面为待输入信息位对应的目标键盘页面。
在步骤S204中,获取用户对目标键盘页面中目标键视图进行操作的第一目标动作,基于第一目标动作确定目标键视图的第一目标关联事件。
在步骤S205中,调用第一目标关联事件对应的代理函数,执行第一目标动作并返回第一执行结果。
在步骤S206中,在待输入信息位中输入第一执行结果。
在步骤S207中,更新待输入信息页面中的待输入信息位为待输入信息中的下一输入位,重复执行更新键盘页面、获取用户的第一目标动作、基于第一目标动作确定第一目标关联事件、调用第一目标关联事件对应的代理函数执行第一目标动作并返回第一执行结果、在待输入信息位中输入第一执行结果步骤,直至遍历待输入信息页面中的所有输入位。
本申请实施例中,该基于定制键盘的信息输入方法可用于基于各类定制键盘的信息输入,例如车牌号键盘、手机号键盘、身份证键盘等。为解释和描述的方便,下文以定制键盘为车牌号键盘为例进行说明。
本申请实施例中,车牌号键盘可以预先安装于终端,例如其可以车牌号输入控件的形式预先安装于终端。用户在需要输入车牌号时,发送信息输入请求调用终端中的车牌号键盘应用,进行车牌号输入操作。终端在接收到用户发送的信息输入请求后,车牌号输入控件,并根据输入控件中的第一配置文件显示待输入信息页面和定制键盘的键盘页面。其中,待输入信息页面可以是编辑车牌号页面,键盘页面可以是车牌号键盘页面。
本申请实施例中,输入控件可以以类的方式实现,在iOS系统中其可以是一个继承自UIViewController的实例,它可以被加入到任何界面上。iOS开发中,显示层由视图(UIView)和视图控制器(UIViewController)组成。视图控制器管理子视图控制器,每个视图控制器都有自己的一个或多个视图,视图就是用户可见的所有控件。
以输入控件为车牌号输入控件为例,其可以维护如下成员变量:一个省份输入控件实例、一个数字和字母输入控件实例数组和代理对象。其中,省份输入控件实例可以由iOS系统控件UITextField类实现,也可以根据需要使用其他系统提供的控件类或者自定义的输入控件类实现,此处不做限制。
设置省份输入控件实例的键盘为一个省份输入键盘实例的具体实现步骤包括:创建一个继承于UIInputViewController的类,在这个类中声明一个成员变量并实例化它,该成员变量的类型就是省份键盘;在UIInputViewController类的viewDidLoad方法中,将省份键盘加入到视图层级中并设置好布局;实例化上述UIInputViewController子类,把其唯一的成员变量、也就是省份键盘的代理指向省份输入控件实例;把省份键盘的前述成员变量“输入控件”赋值为省份输入控件实例;把省份输入控件实例的inputView属性设置为省份键盘。
数字和字母输入控件实例数组中每个数组的元素也是一个UITextField类实例。针对燃油车,数组个数为6个,针对新能源车,数组个数为7个。可以设置每个数组元素的键盘为一个字母数字键盘实例,具体实现步骤包括:创建一个继承于UIInputViewController的类,在这个类中声明一个成员变量并实例化它,该成员变量的类型就是字母数字键盘;在UIInputViewController类的viewDidLoad方法中,将字母数字键盘加入到视图层级中并设置好布局;实例化上述UIInputViewController子类,把其唯一的成员变量、也就是字母数字键盘的代理指向省份输入控件实例;把字母数字键盘的前述成员变量“输入控件”赋值为字母数字输入控件实例;把字母数字输入控件实例的inputView属性设置为字母数字键盘。由于数字和字母键中可能包括成员变量禁用键数组,所以,当输入控件位置不为0时,O就是禁用键;当输入控件位置为0时,所有数字是禁用键。
车牌号输入控件的代理对象执行代理函数,帮输入控件处理逻辑走向。
本申请实施例中,待输入信息页面中可以包括多个待输入信息位,键盘页面包括多个键视图,每个键视图对应一个键盘按钮。
图3(A)和图3(B)是本申请实施例提供的待输入信息页面和键盘页面的示意图。如图3(A)和图3(B)所示,其中“编辑车牌号”视图对应待输入信息页面,该页面可以包括多个待输入信息位,例如第一位省份位,第二位字母位,以及第三至第八位数字或者字母位。进一步的,在待输入信息页面下方的视图对应键盘页面。键盘页面可以是文本页面,也可以是数字和字母页面,当定制键盘需要输入其他特殊符号时,该键盘页面也可以是符号页面,此处不做限制。更进一步的,键盘页面可以包括多个键视图,每个键视图对应一个键盘按钮。例如,在车牌号键盘的文本页面中,可以包括多个省、市和自治区的简称汉字对应的键视图,以及其他特殊键视图,每个键视图对应一个键盘按钮,该键盘按钮可以被点击。又如,在车牌号键盘的数字和字母页面中,可以包括数字和字母对应的键视图,以及其他特殊键视图。
需要说明的是,针对不同的待输入信息位,数字和字母页面可以有不同的可操作键视图。例如,当待输入信息位是车牌号的第二位时,数字和字母页面中的数字键视图可以禁用,此时只有字母键视图和其他特殊键视图为可操作键视图。
本申请实施例中,可以预先制定车牌号输入规则,该输入规则可以保存于输入控件的第一配置文件中。具体的,该车牌号输入规则包括但不限于以下规则:键盘无字母I按键;字母O只可在省份后第一位输入,其余位O置灰不可输入;输入完一个字符后,自动跳转到下一个输入控件;输入焦点在首位时,键盘自动切换至汉字输入模式,输入焦点在其余位时,键盘自动切换至字母数字输入模式;第二位不可输入数字;通过键盘切换至汉字输入模式时,输入焦点同步切换至首位;通过键盘切换至数字输入模式时,输入焦点同步切换至字母数字位已输入位之后。
车牌号键盘的文本页面可以包括文本页面配置文件,该文本页面配置文件包括键盘上按键的具体值、键盘整体布局规则和某些键的特殊规则。其中,键盘上按键的具体值例如可以包括京、沪、鄂、湘、川、渝、粤、闽、晋、黑、津、浙、豫、赣、贵、青、琼、宁、吉、蒙、冀、苏、皖、桂、云、陕、甘、藏、新、辽、ABC、鲁、港、澳、学、无牌、删除。键盘整体布局规则例如可以包括页面总行数,每行包括的键视图数,每行包括的具体键视图,每个键视图的坐标、宽高或宽高比、水平间距和垂直间距,是否有图片(例如删除键就是一个箭头图片,其他普通的键也可以使用炫酷的图片)。某些键的特殊规则是指业务需求可能对某些键制定更细节的规则,例如在键盘刚出现时,ABC键和删除键是否可用取决于对应的输入控件是否有文本,如果输入控件是有文本,ABC键和删除键就可用,否则不可用。又如是否需要大键预览视图,可以设置某些键需要,某些键不需要。
进一步的,文本页面配置文件中还可以包括开关选项。具体的,若某项规则被配置了,代表需要这个规则,如果没配置,代表不需要这个规格。或者,对该项规则配置制作一个开关,如果开就代表需要这个规则,如果关就代表不需要这个规则。根据业务需求,文本页面配置文件可以随时被更新,比如业务需求可能不要求展示无牌、或者车牌规则发生变化,就更新对应的键的具体值和布局规则。
本申请实施例中,数字和字母页面可以包括数字和字母页面配置文件,该数字和字母页面配置文件包括键盘上按键的具体值、键盘整体布局规则和某些键的特殊规则。其中,键盘上按键的具体值例如可以包括0、1、2、3、4、5、6、7、8、9、Q、W、E、R、T、Y、U、O、P、L、A、S、D、F、G、H、J、K、N、M、省份、Z、X、C、V、B、删除。键盘整体布局规则与文本页面配置文件中的规则类似,此处不再赘述。
数字和字母页面配置文件中某些键的特殊规则,除与文本页面配置文件中相同的特殊规则外,还可能由于业务需求需要对某些键制定更细节的规则,包括在键盘刚出现时,省份键和删除键是否可用取决于对应的输入控件是否有文本,如果输入控件是有文本,省份键和删除键就可用;否则不可用。数字和字母页面配置文件中也可以包括开关选项。以及某些按键在某些情况下不可用(置灰),如字母O只可在省份后第一位输入,其余位O置灰不可输入,因此需要判断字母数字键盘对应的输入控件在第几个位置上,以此决定键盘上的O是否需要置灰;或者第二位不可输入数字,因此需要判断字母数字键盘对应的输入控件在第几个位置上,以此决定键盘上的数字是否需要置灰。以及焦点变化规则,即输入焦点在首位时,键盘自动切换至汉字输入模式,输入焦点在其余位时,键盘自动切换至字母数字输入模式;通过键盘切换至汉字输入模式时,输入焦点同步切换至首位;通过键盘切换至数字输入模式时,输入焦点同步切换至字母数字位已输入位之后。以及是否需要大键预览视图,可以设置某些键需要,某些键不需要。
数字和字母页面配置文件同样可以随时被更新,比如车牌规则发生变化,就更新对应的键的具体值和布局规则。
本申请实施例中,终端可以首先设置待输入信息页面中的待输入信息位为待输入信息中的第一输入位。也就是说,终端在接收到用户发送的信息输入请求,调用输入控件显示待输入信息页面时,可以默认用户将从待输入信息页面中的第一输入位进行顺序输入。此时,终端可以调用第二配置文件,基于该配置未见更新键盘页面为待输入信息位对应的目标键盘页面。例如,在用户调用车牌号键盘进行车牌号输入时,可以默认首先输入车牌号的第一位即省份位。此时,可以调用第二配置文件来更新键盘页面为用于输入省份信息的文本键盘页面。
本申请实施例中,终端可以获取用户对目标键盘页面中目标键视图进行操作的第一目标动作,基于第一目标动作确定目标键视图的第一目标关联事件。进一步的,调用第一目标关联事件对应的代理函数,执行第一目标动作并返回第一执行结果。也就是说,终端可以获取用户在当前键盘页面中的动作,例如点击某键视图,或者长按某键视图,并确定该动作对应的关联事件。随后,调用该关联事件对应的代理函数,在该代理函数中执行该动作并返回执行结果。采用这种方式,能够解耦执行用户操作的程序与待输入信息页面和键盘页面中显示的程序,提高了基于定制键盘进行信息输入的灵活性。
本申请实施例中,终端在接收到第一执行结果后,可以在待输入信息位中输入所述第一执行结果。例如,若第一执行结果是针对用户在输入省份信息的文本键盘页面中点击了键视图“渝”的动作的执行结果,则可以待输入信息页面的第一位中输入“渝”,至此完成了车牌号第一位的信息输入。
本申请实施例中,可以更新待输入信息页面中的待输入信息位为待输入信息中的下一输入位,重复执行更新键盘页面、获取用户的第一目标动作、基于第一目标动作确定第一目标关联事件、调用第一目标关联事件对应的代理函数执行第一目标动作并返回第一执行结果、在待输入信息位中输入第一执行结果步骤,直至遍历待输入信息页面中的所有输入位。
也就是说,在完成车牌号的第一位信息输入后,可以自动切换至第二信息位,采用上述获取用户目标动作、确定目标关联事件、调用目标关联事件对应的代理函数并返回执行结果的方法继续对第二信息位进行信息输入。如此迭代执行,直至遍历所有车牌号位。
根据本申请实施例提供的技术方案,通过将定制键盘信息输入中的各功能,采用输入控件分别控制信息输入页面和键盘页面,通过配置文件为信息输入页面的各待输入信息位配置对应的键盘页面,并在各键盘页面通过识别目标动作、确定目标关联事件、调用代理函数并返回执行结果的方式实现各信息位的信息输入,使得该信息输入方法能够使用于多种不同的定制键盘输入,提高了基于定制键盘进行信息输入的通用性,提升了信息输入效率,提高了用户体验。
本申请实施例中,第一目标动作可以包括点击动作,点击动作的第一目标关联事件为点击事件。此时,调用第一目标关联事件对应的代理函数,执行第一目标动作可以采用如下方式实现:响应于第一目标关联事件为点击事件,调用第一目标关联事件对应的点击事件代理函数执行点击动作,获得点击事件代理函数的返回值。其中,第一点击事件代理函数的返回值为目标键视图的值,点击事件代理函数包括手势响应函数。
本申请实施例中,键视图可以由键视图类实现,例如在iOS系统中,其可以是一个继承至视图基类UIView的类,其中可以封装视图的通用逻辑,包括在初始化函数中,创建一个按钮作为其子视图;在初始化函数中,设置按钮和键视图的视觉效果;在初始化函数中,设置按钮的关联事件;以及定义代理对象和代理函数。
其中,在初始化函数中,创建一个按钮作为其子视图可以是,创建一个按钮作为其子视图,将子视图加入到键视图上,形成父子关系。一示例中,按钮可以是iOS系统提供的按钮视图,其可以绑定事件,设置可用性等。在初始化函数中,设置按钮和键视图的视觉效果可以是,设置阴影、圆角、文本颜色、背景色、大小,都是视觉效果,这些视觉效果可以存放在一个配置文件中。
本申请实施例中,可以对按钮设置三个关联事件,分别为点击事件、按下瞬间事件和抬起瞬间事件。其中,点击事件是用户点击键盘的事件,也是键视图的核心功能,当这个事件发生后,键视图调用自己的代理函数即按下并抬起代理函数,让父控件(也就是键盘)去处理具体的逻辑。按下瞬间事件和抬起瞬间事件的功能参见后文详细描述。
本申请实施例中,定义代理对象和代理函数可以通过调用接口实现函数并获得函数执行结果。以在iOS中定义代理对象和代理函数为例,iOS中的代理是一种设计模式,也可以看做委托模式。在实现时,可以首先自定义一个接口,接口中预定义函数,但是不实现这些函数。然后,键视图定义一个成员属性对外开放,它的类型是一个实现了前述接口的任意类,这个属性由外部调用者负责对其赋值,外部调用者会对属性赋值一个具体的类实例,这个类实例的类必须满足条件:实现了代理的接口。最后,键视图在自己逻辑需要的地方,会调用成员属性的接口定义函数,从而能够在某事件发生时,键视图自己不做处理,通过调用代理属性的方法,让类实例去处理具体的逻辑。需要说明的是,上述代理方法可以用回调块等类似的设计方式实现,此处不做限制。
本申请实施例中,键盘的代理对象执行代理函数,帮助键盘处理逻辑走向。在车牌号键盘的文本页面中,当某个键按下并抬起时,就是用户点击了这个键视图,此时车牌号键盘需要调用代理函数获取该键视图对应的值,如“京”。进一步的,在某些情况下,还可以播放键盘按键音。例如在iOS系统中,可以通过调用iOS系统提供的类UIDevice,调用其current属性,对这个属性调用playInputClick方法,进而使车牌号键盘继承于iOS系统提供的代理接口UIInputViewAudioFeedback,并实现其接口的代理方法enableInputClicksWhenVisible,方法的返回值写为真(true),即可实现播放按键音。
更进一步的,在iOS系统的开发流程下,通常用户在键盘上输入了一个字符后,这个字符并不会立刻显示在对应的输入控件中,而是输入控件可以根据业务需求,决定是否真的需要这个字符,如果不需要就在系统提供的相关代理函数中返回假(false),如果需要,就返回真(true),只有返回了真的字符才会真正在输入控件中显示出来。
针对自定义的车牌号键盘,同样需要为车牌号键盘来定义这样的代理接口和函数,并提供给外部(也就是输入控件)来返回布尔(Bool)值。具体实现方式为:调用“是否允许本次输入的代理函数”,将其返回结果作为判断后继逻辑的依据;如果允许本次输入,则访问自己的成员变量:输入控件,通过访问输入控件的文本text属性,得到输入控件当前的文本,这是一个字符串,访问字符串的数据项数count属性,得到字符串长度;对输入控件调用iOS系统提供的insertText方法,意为让系统对输入控件执行插入一个字符的操作;再次访问输入控件的text属性的count属性,得到执行插入操作后的字符串长度;判断插入前的输入控件文本长度和插入后的输入控件文本长度:如果插入前文本长度等于0,插入后文本长度等于1,说明文本被插入了值,应该把ABC键和删除键的可用性设置为真(true)。
此外,还可以模仿iOS系统的输入控件“获取默认键盘输入的许可行为”,定义系统的代理函数func textField(_ textField: UITextField, shouldChangeCharactersInrange: NSRange, replacementString string: String) ->Bool,其中第一个参数是键盘对应的输入控件,第二个参数是当前要输入字符在输入控件中的位置,第三个参数是当前要输入的字符,从而由外部即键盘的使用者来决定本次的键盘输入是否有效。
本申请实施例中,在信息输入时除针对点击动作输入对应键视图的值外,还可以对用户按下键视图时对键视图进行放大显示,并在用户抬起手指后停止放大键视图。
图4是本申请实施例提供的另一种基于定制键盘的信息输入方法的流程示意图。其中,图4所示实施例中的步骤S401至步骤S407与图2所示实施例中的步骤S201至步骤S207基本相同,此处不再赘述。如图4所示,该方法还包括如下步骤:
在步骤S408中,获取用户对目标键盘页面中目标键视图进行操作的第二目标动作,基于第二目标动作确定目标键视图的第二目标关联事件。
在步骤S409中,调用第二目标关联事件对应的代理函数,执行第二目标动作并返回第二执行结果。
在步骤S410中,在目标键盘页面中显示第二执行结果。
本申请实施例中,终端可以获取用户对目标键盘页面中目标键视图进行操作的第二目标动作,基于第二目标动作确定目标键视图的第二目标关联事件。其中,第二目标动作包括按下动作和抬起动作,按下动作的第二目标关联事件为按下瞬间事件,抬起动作的第二目标关联事件为抬起瞬间事件。
本申请实施例中,终端可以调用第二目标关联事件对应的代理函数,执行第二目标动作并返回第二执行结果,进而在目标键盘页面中显示第二执行结果。其中,在目标键盘页面中显示第二执行结果可以是,当第二目标关联事件为按下瞬间事件时,调用第二目标关联事件对应的按下瞬间事件代理函数执行按下瞬间动作,获得按下瞬间事件代理函数的返回值;基于大键预览信息生成目标键视图的大键预览视图,并在目标键盘页面中显示大键预览视图。其中,按下瞬间事件代理函数的返回值为目标键视图大键预览信息。
另一方面,在目标键盘页面中显示第二执行结果还可以是,当第二目标关联事件为抬起瞬间事件时,调用第二目标关联事件对应的抬起瞬间代理函数执行抬起瞬间动作,获得抬起瞬间代理函数的返回值;在目标键盘页面中移除目标键视图的大键预览视图。其中,抬起瞬间代理函数的返回值为移除目标键视图大键预览提示信息。
本申请实施例中,第二目标动作包括按下动作和抬起动作,按下动作的第二目标关联事件为按下瞬间事件,抬起动作的第二目标关联事件为抬起瞬间事件。其中,在目标键盘页面中显示第二执行结果,包括:响应于第二目标关联事件为按下瞬间事件,调用第二目标关联事件对应的按下瞬间事件代理函数执行按下瞬间动作,获得按下瞬间事件代理函数的返回值,按下瞬间事件代理函数的返回值为目标键视图大键预览信息;基于大键预览信息生成目标键视图的大键预览视图,并在目标键盘页面中显示大键预览视图。或者,响应于第二目标关联事件为抬起瞬间事件,调用第二目标关联事件对应的抬起瞬间代理函数执行抬起瞬间动作,获得抬起瞬间代理函数的返回值,抬起瞬间代理函数的返回值为移除目标键视图大键预览提示信息;在目标键盘页面中移除目标键视图的大键预览视图。
本申请实施例中,大键预览信息可以包括大键显示位置类型和大键显示名。基于大键预览信息生成目标键视图的大键预览视图,可以是:创建大键显示实例,大键显示实例包括第一属性和第二属性;将大键显示位置类型传入大键显示实例的第一属性,将大键显示名传入大键显示实例的第二属性;自第二配置文件获取目标键视图的位置布局信息,基于位置布局信息、大键显示实例的第一属性和第二属性确定目标键视图的大键预览视图。
具体实现时,可以首先创建大键预览视图的类,该类包括两个对外开放的成员属性,分别为位置类型和显示名。其中,位置类型代表大键预览视图的显示位置,包括左边、右边和中间。不同位置的大键预览视图的形状可以不同。显示名代表大键预览视图的值。该大键预览视图的类具有内部的绘制函数,可以根据业务需求给出的设计图,根据类型和显示名绘制不同的形状和风格。
在手指按下瞬间,可以在按下瞬间事件函数中写逻辑如下:首先访问前述成员属性:无需/需要大键预览视图的键。看当前用户按下的键是哪一个,如果在无需/需要大键预览视图的键范围中,就排除,不进行下一步。
然后创建一个大键预览视图的实例,根据当前用户按下的键的信息,设置大键预览视图的实例的属性,主要为:其位置类型和显示名。
图5是本申请实施例提供的大键显示预览的示意图。如图5所示,大键预览视图“蒙”的位置类型为右边,显示名为“蒙”,“津”的位置类型为左边,显示名为“津”,“T”的位置类型为中间,显示名为“T”。
最后根据当前用户按下的键的位置布局信息,计算出大键预览视图在键盘上的坐标和宽高,按照坐标和宽高将大键预览视图加入键盘上。例如,加入视图的iOS系统方法为:- (void)addSubview:(UIView *)view,参数view传入大键预览视图。
本申请实施例中,在目标键盘页面中移除目标键视图的大键预览视图为,调用实例移除方法,将大键显示实例从目标键盘页面移除。
也就是说,在手指抬起瞬间,可以在抬起瞬间事件函数中写逻辑如下:把大键预览视图的实例从键盘中移除。例如,移除视图的iOS系统方法为:func removeFromSuperview(),对大键预览视图实例调用这个方法即可。
也就是说,当用户点击某个车牌键盘上的键视图时,由于键视图已经设置了按钮关联事件,因此iOS系统就触发键视图的手指按下瞬间事件。进一步的,由于键盘已经实现了键视图的代理方法,所以这个事件传递到了键盘中进行处理,键盘执行了前述的手指按下瞬间事件的逻辑,展示了大键预览视图。当用户的手指离开车牌键盘上的键视图时,由于键视图已经设置了按钮关联事件,所以iOS系统就触发键视图的手指抬起瞬间事件,由于键盘已经实现了键视图的代理方法,所以这个事件传递到了键盘中进行处理,键盘执行了前述的手指抬起瞬间事件的逻辑。移除了大键预览视图。
需要说明的是,图4所示实施例提供的大键预览方法,可以在信息输入的任意时刻执行。一示例中,用户可以在进行信息输入前通过按下动作实现大键预览,并通过抬起动作实现预览取消。另一示例中,用户也可以在信息输入之后通过按下动作实现大键预览,并通过抬起动作实现预览取消。又一示例中,用户还可以在信息输入中,即完成了部分信息的输入后,通过按下动作实现大键预览,并通过抬起动作实现预览取消。
本申请实施例中,键盘页面可以包括第一键盘页面和第二键盘页面,第一键盘页面用于输入待输入信息页面中的第一待输入信息,第二键盘页面用于输入待输入信息页面中的第二待输入信息。其中,第一键盘页面和第二键盘页面分别包括多个键视图,每个键视图对应一个键盘按钮。
如上所述,当定制键盘为车牌号键盘时,键盘页面可以包括文本页面以及数字和字母页面。其中,文本页面用于输入待输入信息页面中的文本信息,包括省份信息、无牌信息或者其他特殊文本信息,数字和字母页面用于输入待输入信息页面中的数字和字母信息。文本页面与数字和字母页面分别包括多个键视图,每个键视图对应一个键盘按钮。
进一步的,文本页面可以是一个省份输入控件实例,其包括如下成员变量:输入控件和无需/需要大键预览视图的键数组。其中,输入控件是一个对外开放的成员变量,其可以是iOS系统的输入控件实例的应用,为了其通用性,它的类型应该为UIView。这个成员变量由外部即键盘的使用者对它赋值。这个成员变量的意思是对输入控件的引用,便于键盘知道自己是被哪个输入控件调起来的。
无需/需要大键预览视图的键数组是一个对外开放的成员变量,其可以是一个字符串数组,数组的取值范围限定为键值中。这个成员变量由外部即键盘的使用者)对它赋值,这个成员变量的意思是:无需/需要大键预览视图的键。如果大键预览视图规则是开启的,则默认所有键都是需要大键预览视图的,这里存储的就是无需大键预览视图的键。如果大键预览视图规则是关闭的,则默认所有键都是不要大键预览视图的,这里存储的就是需要大键预览视图的键。
更进一步的,数字和字母页面可以是一个数字和字母输入控件实例,其包括如下成员变量:输入控件、无需/需要大键预览视图的键和禁用键。其中输入控件和无需/需要大键预览视图的键与省份输入控件实例中输入控件和无需/需要大键预览视图的键相同,此处不再赘述。禁用键数组是一个对外开放的成员变量,其可以是一个字符串数组,数组的取值范围限定为键值中。这个成员变量由外部即键盘的使用者对它赋值,这个成员变量的意思是:禁用的键。例如当输入控件不是车牌号的二个位置时,O就是禁用键;当输入控件是车牌号的第二个位置时,所有数字都是禁用键。
本申请实施例中,第一键盘页面包括文本键视图、第一切换键视图和第一删除键视图。第二键盘页面包括数字和字母键视图、第二切换键视图和第二删除键视图。如图3(A)和3(B)所示,文本页面中除文本键视图外,还包括第一切换键视图“ABC”和第一删除键视图“删除”,数字和字母页面中除数字键视图和字母键视图外,还包括第二切换键视图“省份”和第二删除键视图“删除”。
本申请实施例中,当接收到用户点击第一切换键视图的操作信息时,将目标键盘页面由第一键盘页面切换为第二键盘页面。或者,当接收到用户点击第二切换键视图的操作信息时,将目标键盘页面由第二键盘页面切换为第一键盘页面。
也就是说,在文本页面中,若用户点击了第一切换键视图“ABC”,则需要将目标键盘页面由第一键盘页面切换为第二键盘页面。具体操作中,同样可以通过调用函数的方式来实现。当键视图“ABC”被点击时,该键视图“ABC”对应的代理函数被调用,此时用于进行车牌号输入的输入控件可以知道省份键盘上的“ABC”键被按下了,于是去切换键盘,从省份键盘切换为数字和字母键盘。切换时,对输入控件中的数字和字母输入控件实例调用becomeFirstResponder()方法即可。这是iOS系统提供的方法,意为让这个输入控件称为第一响应者,从而输入焦点、也就是光标就会移到这个控件上,此时系统会自动弹出其绑定的键盘。
在数字和字母页面中,若用户点击了第二切换键视图“省份”,则需要将目标键盘页面由第二键盘页面切换为第一键盘页面。具体操作中,同样可以通过调用函数的方式来实现。当键视图“省份”被点击时,该键视图“省份”对应的代理函数被调用,此时用于进行车牌号输入的输入控件可以知道省份键盘上的“省份”键被按下了,于是去切换键盘,从数字和字母键盘切换为省份键盘。切换时,对输入控件中的省份输入控件实例调用becomeFirstResponder()方法即可。
图6是本申请实施例提供的又一种基于定制键盘的信息输入方法的流程示意图。其中,图6所示实施例中的步骤S601至步骤S607与图2所示实施例中的步骤S201至步骤S207基本相同,此处不再赘述。如图6所示,该方法还包括如下步骤:
在步骤S608中,响应于接收到用户点击第一删除键视图或第二删除键视图的操作信息,获取输入控件的第一文本属性,确定第一文本属性的第一字符串长度。
在步骤S609中,对输入控件调用删除方法删除待输入信息位的上一位信息。
在步骤S610中,获取输入控件的第二文本属性,确定第二文本属性的第二字符串长度。
在步骤S611中,响应于确定第一字符串长度大于第二字符串长度,完成删除键视图的操作。
在步骤S612中,响应于第二字符串长度为0,设置第一删除键视图或第二删除键视图为不可用。
本申请实施例中,无论在文本页面还是数字与字母页面,当用户点击删除键视图时,可以获取输入控件的第一文本text属性,确定第一text属性的第一字符串长度。具体的,可以通过获取输入控件的text属性得到文本字符串,然后访问文本字符串的数据项数count属性,得到该文本字符串的第一字符串长度。然后对输入控件调用删除方法删除待输入信息位的上一位信息。接下来获取输入控件的第二text属性,该第二text是删除了信息完成了更新后的text属性。基于第二text属性对应的文本字符串的count属性可以确定第二字符串长度。若第一字符串长度大于第二字符串长度,则确定完成删除键视图的操作。进一步的,若第二字符串长度为0,则表示没有可以删除的信息,此时可以设置第一删除键视图或第二删除键视图为不可用。
本申请实施例中,基于第二配置文件更新键盘页面为待输入信息位对应的目标键盘页面,可以是响应于确定待输入信息位为第一待输入信息中的信息位,基于第二配置文件更新键盘页面为第一键盘页面;或者,响应于确定待输入信息位为第二待输入信息中的信息位,基于第二配置文件更新键盘页面为第二键盘页面。
也就是说,当待输入信息位是文本信息时,可以基于输入控件的第二配置文件更新键盘页面为第一键盘页面;当待输入信息位为第二待输入信息中的信息位时,可以基于第二配置文件更新键盘页面为第二键盘页面。具体的,第二配置文件可以包括文本页面配置文件以及数字和字母页面配置文件,当待输入信息位是文本信息时,可以基于第二配置文件中的文本页面配置文件更新键盘页面为文本页面;当待输入信息位是数字和字母信息时,可以基于第二配置文件中的数字和字母页面配置文件更新键盘页面为数字和字母页面。
本申请实施例中,基于第二配置文件更新键盘页面为第一键盘页面,可以是:基于第二配置文件确定待输入信息位的第一键盘页面规则;更新键盘页面为第一键盘页面,并基于第一键盘页面规则设置第一键盘页面中的切换键视图和删除键视图为可用或者不可用。
本申请实施例中,基于第二配置文件更新键盘页面为第二键盘页面,可以是:基于第二配置文件确定待输入信息位的第二键盘页面规则;更新键盘页面为第二键盘页面,并基于第二键盘页面规则设置第一键盘页面中的切换键视图和删除键视图为可用或者不可用。
需要说明的是,上述键盘页面切换方法和删除操作方法,同样可以在信息输入的任意时刻执行。一示例中,用户可以在进行信息输入前通过点击第一切换键视图将目标键盘页面由第一键盘页面切换为第二键盘页面,或者通过点击第二切换键视图将目标键盘页面由第二键盘页面切换为第一键盘页面,或者通过点击第一删除键视图或第二删除键视图使用图6所示实施例提供的删除方法对输入信息进行删除。另一示例中,用户也可以在信息输入之后通过点击第一切换键视图将目标键盘页面由第一键盘页面切换为第二键盘页面,或者通过点击第二切换键视图将目标键盘页面由第二键盘页面切换为第一键盘页面,或者通过点击第一删除键视图或第二删除键视图使用图6所示实施例提供的删除方法对输入信息进行删除。又一示例中,用户还可以在信息输入中,即完成了部分信息的输入后,通过点击第一切换键视图将目标键盘页面由第一键盘页面切换为第二键盘页面,或者通过点击第二切换键视图将目标键盘页面由第二键盘页面切换为第一键盘页面,或者通过点击第一删除键视图或第二删除键视图使用图6所示实施例提供的删除方法对输入信息进行删除。
图7是本申请实施例提供的调用手势响应函数执行点击动作的方法的流程示意图。如图7所示,该方法包括如下步骤:
在步骤S701中,获取手势状态。
在步骤S702中,响应于手势状态为开始状态,确定目标键视图的类型。
在步骤S703中,响应于目标键视图为文本键视图、数字和字母键视图,对输入控件调用文本输入方法,执行点击动作。
在步骤S704中,响应于目标键视图为删除键视图,对输入控件调用删除方法,执行点击动作。
在步骤S705中,再次获取手势状态。
在步骤S706中,响应于手势状态不为结束状态,递归调用手势响应函数执行点击动作,直至手势状态为结束状态,或者完成对待输入页面中的全部待输入信息位的输入或者删除操作。
本申请实施例中,在调用手势响应函数执行点击动作时,可以首先获取手势状态。若确定手势状态为开始状态,则进一步确定目标键视图的类型。当目标键视图为文本键视图、数字和字母键视图时,对输入控件调用文本输入方法,执行点击动作。当目标键视图为删除键视图时,对输入控件调用删除方法,执行点击动作。在执行完点击动作后,可以再次获取手势状态,若手势状态不为结束状态,则递归调用手势响应函数执行点击动作,直至手势状态为结束状态,或者完成对待输入页面中的全部待输入信息位的输入或者删除操作。
也就是说,在本申请实施例中,还可以设置如下规则:是否需要长按某个键视图,以实现连续输入或连续删除的功能。
具体的,可以对键视图添加长按手势。长按手势在iOS系统中为UILongPressGestureRecognizer,创建该类的实例,通过iOS系统方法funcaddGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer),把长按手势加入到删除键视图上即可。
进一步的,在手势响应函数中,可以调用一个封装起来的函数,该函数需要递归调用,因此将其进行封装。函数内部逻辑为:首先获取手势状态,如果为开始:则让iOS系统播放键盘按键音。然后判断当前键是否为删除键,如果是删除键,则对输入控件调用iOS系统提供的deleteBackward方法,意为让系统对输入控件执行删除一个字符的操作。如果是其他普通键,则对输入控件调用iOS系统提供的insertText方法,意为让系统对输入控件执行输入一个字符的操作。如果是例如“无牌”或者“ABC”、“省份”这样的特殊键,不做任何处理。最后获取手势状态,只要不为已结束,就递归调用这个函数,达到连续删除/输入的目的。在实际操作时,当用户长按时,iOS系统会进入手势的响应函数,在此期间,会一直执行上述逻辑,直到手指抬起。
本申请实施例中,如前所述,输入控件包括第一成员变量和第二成员变量,第一成员变量为文本输入控件实例,第二成员变量为数字和字母输入控件实例。
图8是本申请实施例提供的为第一成员变量赋值的方法的流程示意图。如图8所示,该方法包括如下步骤:
在步骤S801中,创建第一自定义键盘类,在第一自定义键盘类中声明并实例化第三成员变量。
在步骤S802中,在第一自定义键盘类的视图加载方法中,将第三成员变量加入视图层级,并设置视图布局。
在步骤S803中,实例化第一自定义键盘类的子类,将第三成员变量的代理指向文本输入控件实例。
在步骤S804中,将第一成员变量赋值为文本输入控件实例。
本申请实施例中,在为第一成员变量赋值时,可以首先创建第一自定义键盘类,在第一自定义键盘类中声明并实例化第三成员变量。然后在第一自定义键盘类的视图加载方法中,将第三成员变量加入视图层级,并设置视图布局。接下来实例化第一自定义键盘类的子类,将第三成员变量的代理指向文本输入控件实例。最后将第一成员变量赋值为文本输入控件实例。
图9是本申请实施例提供的为第二成员变量赋值的方法的流程示意图。如图9所示,该方法包括如下步骤:
在步骤S901中,设置数字和字母输入控件实例为数组,数组包括N个数组元素,每个数组元素为一个输入控件类实例。
其中,N为正整数。
在步骤S902中,创建第二自定义键盘类,在第二自定义键盘类中声明并实例化第四成员变量。
在步骤S903中,在第二自定义键盘类的视图加载方法中,将第四成员变量加入视图层级,并设置视图布局。
在步骤S904中,实例化第二自定义键盘类的子类,将第四成员变量的代理指向数字和字母输入控件实例。
在步骤S905中,将第二成员变量赋值为每个数组元素对应的输入控件类实例。
本申请实施例中,在为第二成员变量赋值时,可以首先设置数字和字母输入控件实例为数组,数组包括N个数组元素,每个数组元素为一个输入控件类实例。然后创建第二自定义键盘类,在第二自定义键盘类中声明并实例化第四成员变量。接着在第二自定义键盘类的视图加载方法中,将第四成员变量加入视图层级,并设置视图布局。接下来实例化第二自定义键盘类的子类,将第四成员变量的代理指向数字和字母输入控件实例。最后将第二成员变量赋值为每个数组元素对应的输入控件类实例。
本申请实施例中,数字和字母输入控件实例数组中,还可以包括成员变量禁用键数组。其中,数字和字母键视图采用如下方式显示:将数字和字母输入控件实例的输入界面属性设置为数字字母键盘;响应于数字和字母输入控件实例数组中包括成员变量禁用键数组,将成员变量禁用键数组对应的数字或者字母设置为不可用。
也就是说,可以在数字和字母输入控件实例数组中进一步配置禁用键数组,这是一个对外开放的成员变量,也是一个字符串数组,数组的取值范围限定为键值中。该成员变量由外部即键盘的使用者对它赋值,其含义是禁用的键。一示例中,当输入控件不是车牌号的二个位置时,O就是禁用键;当输入控件是车牌号的第二个位置时,所有数字都是禁用键。
图10是本申请实施例提供的再一种基于定制键盘的信息输入方法的流程示意图。其中,图10所示实施例中的步骤S1001至步骤S1007与图2所示实施例中的步骤S201至步骤S207基本相同,此处不再赘述。如图10所示,该方法还包括如下步骤:
在步骤S1008中,响应于接收到用户发送的信息输入请求,发送键盘即将弹出通知函数。
在步骤S1009中,接收键盘即将弹出通知函数的回调函数,回调函数中包括键盘的位置和大小。
在步骤S1010中,基于键盘的位置和大小确定待输入信息页面和键盘页面的显示位置。
本申请实施例中,终端在接收到用户发送的信息输入请求后,输入控件可以发送键盘即将弹出通知函数至处理单元。随后,接收处理单元发送的键盘即将弹出通知函数的回调函数,回调函数中包括键盘的位置和大小。最后,基于键盘的位置和大小确定待输入信息页面和键盘页面的显示位置。
图11是本申请实施例提供的另外一种基于定制键盘的信息输入方法的流程示意图。其中,图11所示实施例中的步骤S1101至步骤S1107与图2所示实施例中的步骤S201至步骤S207基本相同,此处不再赘述。如图11所示,该方法还包括如下步骤:
在步骤S1108中,响应于信息输入完成,发送键盘即将收回通知函数。
在步骤S1109中,接收键盘即将收回通知函数的回调函数。
在步骤S1110中,调节终端中其他页面的显示位置。
本申请实施例中,本申请实施例中,当信息输入完成后,输入控件还可以发送键盘即将收回通知函数至终端的处理单元。然后,接收终端的处理单元发送的键盘即将收回通知函数的回调函数。基于该键盘即将收回通知函数的回调函数调节终端中其他页面的显示位置,将各页面均恢复初始位置。
图12是本申请实施例提供的再另外一种基于定制键盘的信息输入方法的流程示意图。其中,图12所示实施例中的步骤S1201至步骤S1207与图2所示实施例中的步骤S201至步骤S207基本相同,此处不再赘述。如图12所示,该方法还包括如下步骤:
在步骤S1208中,在遍历待输入信息页面中的所有输入位后,组装待输入信息页面中每一待输入信息位的输入值,得到用户输入信息。
本申请实施例中,可以组装待输入信息页面中每一待输入信息位的输入值,得到用户输入信息。
也就是说,以在iOS中实现该方法为例,当终端接收到用户发送的信息输入请求后,可以在系统提供的viewDidLoad函数中,写如下逻辑:
首先读取绘制规格输入控件中的第一配置文件,根据绘制规则绘制车牌号输入控件的界面,做好视图的布局工作。
然后监听系统提供的键盘通知,键盘即将弹出通知函数可以是keyboardWillShowNotification。在弹出通知回调函数中,获取键盘的位置和大小,调节自己的显示位置,避免被弹出的键盘遮挡。键盘即将收回通知函数可以是keyboardWillHideNotification。在收回通知回调函数中,调节自己的显示位置,恢复初始位置。
若待输入信息页面或者键盘页面中包括确认按钮,则还可以根据输入控件的输入情况设置确认按钮的状态。例如统计省份输入控件和数字字母输入控件实例数组的文本填充情况,如果都已输入,则将确认按钮的状态设为可点选;如果还有没输入的,则将确认按钮的状态设为不可点选。
最后确认动作,用户输入车牌号完成后,根据布局规则即输入控件中的第一配置文件,或许界面上有一个确认按钮,或许没有(用户输完最后一位即视作输入完成),此时要执行确认动作,也就是:组装每个输入控件的文本,从而得到用户输入的车牌号。访问成员变量省份输入控件,访问其text属性,得到第一文本。访问成员变量数字字母输入控件实例数组,循环遍历每个元素,访问其text属性,得到第二文本。将第一文本和第二文本相加,即可得到用户输入的车牌号。
上文提及,第一键盘页面和第二键盘页面都有代理方法需要实现,所以输入键盘可以设置省份键盘和数字和字母键盘的代理实例为自己或其他逻辑处理实例(其他逻辑处理实例必须对车牌号输入控件具有访问权限),并实现对应的代理方法。
图13是本申请实施例提供的代理事件传递链的示意图。如图13所示,一个事件可以从键视图传入键盘,键盘传入某代理对象,代理对象操作车牌号输入控件的相关功能。或者,一个事件可以从键视图传入键盘,键盘传入车牌号输入控件,控制直接执行相关功能。
其中,第一键盘页面和第二键盘页面共有的代理函数包括是否允许本次输入的代理函数。当这个函数被调用时,输入控件可以知道省份键盘输入了一个字符,现在输入控件需要决定本次的键盘输入是否有效(即是否要这个输入或者丢弃这个输入)。此时输入控件需要拿到函数的第2、3个参数,预组装出如果允许本次输入后,输入控件上应有的文本。判断文本个数是否大于等于1,如果大于等于1就返回假,表示不允许,直接将输入控件的文本赋值为应有的文本;如果为0就允许本次输入。在大于等于1的情况下,继续执行如下操作:直接将输入控件的文本赋值为应有的文本,移动光标到下一个输入控件,并根据当前的文本,进一步改变确认按钮的状态。
需要说明的是,这个数字是可以通过配置文件进行修改的,例如在输入控件中的第四配置文件中要求实现上,用一个输入控件而不是6个或7个来实际实现字母数字输入控件,则1就变成6或者7。
第一键盘页面和第二键盘页面共有的代理函数还包括移动光标到下一个输入控件函数。执行时可以拿到函数的第一个参数,即键盘对应的输入控件进行判断:如果当前触发键盘输入的是省份输入控件,说明用户已经输入了一个省份,根据前述规则“输入完一个字符后,自动跳转到下一个输入控件”,将成员变量“数字字母输入控件实例数组”的第一个元素设置为第一响应者。如果当前触发键盘输入的是字母数字输入控件,说明用户已输入了一个车牌号字母或车牌号数字,根据前述规则“输入完一个字符后,自动跳转到下一个输入控件”。判断当前字母数字输入控件在字母数字输入控件数组中的位置,如果不是最后一个,将输入焦点移动到数组的下一个输入控件中;如果是最后一个,则根据规则决定是将输入焦点移动到第一个字母数字输入控件或省份输入控件上。具体的,移动焦点的方法可以是,对将要移动去的输入控件调用函数becomeFirstResponder()。
此外,如果规则配置了车牌号输入控件有确认按钮,还需要进一步改变确认按钮的状态。
第一键盘页面具有自身特有的代理函数:键视图“ABC”被点击的代理函数。当这个函数被调用时,车牌号输入控件就知道:键视图“ABC”被按下了,于是去切换键盘,从省份键盘切换为字母数字键盘。具体实现为:对字母数字输入控件实例调用becomeFirstResponder()方法即可。采用该方法,将输入控件设置为第一响应者,将输入焦点、也就是光标就会移到输入控件上,此时系统会自动弹出其绑定的键盘。
第二键盘页面也具有自身特有的代理函数,包括省份被点击的代理函数和删光了字母数字文本的代理函数。当省份被点击的代理函数被调用时,输入控件可以知道字母数字键盘上的省份键被按下了,于是去切换键盘,从字母数字键盘切换为省份键盘。具体实现可以是对省份输入控件实例调用becomeFirstResponder()方法即可。
当删光了字母数字文本的代理函数被调用时,车牌号输入控件可以知道键盘删除完了对应的输入控件的所有文本,此时,应该改变输入控件的焦点。根据键盘对应的输入控件的位置,选择是把焦点移到省份输入控件还是上一个键盘输入控件上。具体实现为:判断当前输入控件在数字字母输入控件实例数组中的位置:如果不是第一个,就把输入焦点移动到数组的前一个;如果是第一个,就把输入焦点移动到省份输入控件上。移动焦点方法可以是对将要移动去的输入控件调用函数becomeFirstResponder()。
本申请实施例中,可以把车牌号输入控件封装模块加入到现存界面上。在用户点击了省份输入控件时,省份键盘自动弹出;用户点击省份键盘中的某个键,则iOS系统出发键视图的点击事件;键视图通过代理,传递给省份键盘;代理对象判断当前点击的键;若当前时“ABC”键则省份键盘通过代理询问,代理对象就是车牌号输入控件,车牌号输入控件将输入焦点从省份是输入控件切换至数字和字母输入控件;数字和字母输入控件自动调起数字和字母键盘;数字和字母键盘自动弹出;用户点击数字和字母键盘中的某个键;iOS系统出发键视图的点击事件;键视图通过代理传递给数字和字母键盘;代理对象判断当前点击的键;若当前是省份键,数字和字母键盘通过代理询问,代理对象是车牌号输入控件;车牌号输入控件将输入焦点从数字和字母输入控件切换至省份输入控件,并判断是否有下一个输入控件,若有则下一个数字和字母输入控件自动调起数字和字母键盘;若无则输入完成得到输入的车牌号;若数字和字母键盘的代理对象判断当前点击的键是删除键,数字和字母键盘通过代理询问,代理对象是车牌号输入控件;车牌号输入控件将输入焦点切换到前一个输入控件,前一个的定义可以由配置文件决定;然后执行上述判断是否有下一个输入控件步骤;若数字和字母键盘的代理对象判断当前点击的键是普通键,数字和字母通过代理询问本次输入是否有效,车牌号输入控件判断当前文本长度是否大于等于1;若大于等于1则将输入控件的文本赋值为预算文本,并将输入焦点切换到后一个输入控件,后一个的定义可以由配置文件决定;然后更改确认按钮的状态并执行上述判断是否有下一个输入控件步骤;若当前文本长度等于0则车牌号输入控件允许输入,键盘执行输入动作;若省份键盘的代理对象判断当前点击的键是删除键,省份键盘通过代理询问,代理对象是车牌号输入控件;车牌号输入控件将输入焦点切换到前一个输入控件,前一个的定义可以由配置文件决定;然后执行上述数字和字母输入控件自动调起数字和字母键盘步骤;若省份键盘的代理对象判断当前点击的键是普通键,省份键盘通过代理询问本次输入是否有效,车牌号输入控件判断当前文本长度是否大于等于1;若大于等于1则将输入控件的文本赋值为预算文本,并将输入焦点切换到后一个输入控件,后一个的定义可以由配置文件决定;然后更改确认按钮的状态并执行上述判断是否有下一个输入控件步骤;若当前文本长度等于0则车牌号输入控件允许输入,键盘执行输入动作。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图14是本申请实施例提供的一种基于定制键盘的信息输入装置的示意图。如图14所示,该基于定制键盘的信息输入装置包括:
显示模块1401,被配置为响应于接收到用户发送的信息输入请求,调用输入控件,根据输入控件中的第一配置文件显示待输入信息页面和定制键盘的键盘页面,其中,待输入信息页面中包括多个待输入信息位,键盘页面包括多个键视图,每个键视图对应一个键盘按钮。
设置模块1402,被配置为设置待输入信息页面中的待输入信息位为待输入信息中的第一输入位。
更新模块1403,被配置为基于输入控件的第二配置文件更新键盘页面为待输入信息位对应的目标键盘页面。
获取模块1404,被配置为获取用户对目标键盘页面中目标键视图进行操作的第一目标动作,基于第一目标动作确定目标键视图的第一目标关联事件。
执行模块1405,被配置为调用第一目标关联事件对应的代理函数,执行第一目标动作并返回第一执行结果。
输入模块1406,被配置为在待输入信息位中输入第一执行结果。
迭代模块1407,被配置为更新待输入信息页面中的待输入信息位为待输入信息中的下一输入位,重复执行更新键盘页面、获取用户的第一目标动作、基于第一目标动作确定第一目标关联事件、调用第一目标关联事件对应的代理函数执行第一目标动作并返回第一执行结果、在待输入信息位中输入第一执行结果步骤,直至遍历待输入信息页面中的所有输入位。
根据本申请实施例提供的技术方案,通过将定制键盘信息输入中的各功能,采用输入控件分别控制信息输入页面和键盘页面,通过配置文件为信息输入页面的各待输入信息位配置对应的键盘页面,并在各键盘页面通过识别目标动作、确定目标关联事件、调用代理函数并返回执行结果的方式实现各信息位的信息输入,使得该信息输入方法能够使用于多种不同的定制键盘输入,提高了基于定制键盘进行信息输入的通用性,提升了信息输入效率,提高了用户体验。
本申请实施例中,第一目标动作包括点击动作,点击动作的第一目标关联事件为点击事件;调用第一目标关联事件对应的代理函数,执行第一目标动作步骤为:响应于第一目标关联事件为点击事件,调用第一目标关联事件对应的点击事件代理函数执行点击动作,获得点击事件代理函数的返回值;其中,第一点击事件代理函数的返回值为目标键视图的值,点击事件代理函数包括手势响应函数。
本申请实施例中,还包括:获取用户对目标键盘页面中目标键视图进行操作的第二目标动作,基于第二目标动作确定目标键视图的第二目标关联事件;调用第二目标关联事件对应的代理函数,执行第二目标动作并返回第二执行结果;在目标键盘页面中显示第二执行结果。
本申请实施例中,第二目标动作包括按下动作和抬起动作,按下动作的第二目标关联事件为按下瞬间事件,抬起动作的第二目标关联事件为抬起瞬间事件;在目标键盘页面中显示第二执行结果,包括:响应于第二目标关联事件为按下瞬间事件,调用第二目标关联事件对应的按下瞬间事件代理函数执行按下瞬间动作,获得按下瞬间事件代理函数的返回值,其中,按下瞬间事件代理函数的返回值为目标键视图大键预览信息;基于大键预览信息生成目标键视图的大键预览视图,并在目标键盘页面中显示大键预览视图;或者响应于第二目标关联事件为抬起瞬间事件,调用第二目标关联事件对应的抬起瞬间代理函数执行抬起瞬间动作,获得抬起瞬间代理函数的返回值,其中,抬起瞬间代理函数的返回值为移除目标键视图大键预览提示信息;在目标键盘页面中移除目标键视图的大键预览视图。
本申请实施例中,大键预览信息包括大键显示位置类型和大键显示名;基于大键预览信息生成目标键视图的大键预览视图,包括:创建大键显示实例,大键显示实例包括第一属性和第二属性;将大键显示位置类型传入大键显示实例的第一属性,将大键显示名传入大键显示实例的第二属性;自第二配置文件获取目标键视图的位置布局信息,基于位置布局信息、大键显示实例的第一属性和第二属性确定目标键视图的大键预览视图。
本申请实施例中,在目标键盘页面中移除目标键视图的大键预览视图步骤为:调用实例移除方法,将大键显示实例从目标键盘页面移除。
本申请实施例中,键盘页面包括第一键盘页面和第二键盘页面,第一键盘页面用于输入待输入信息页面中的第一待输入信息,第二键盘页面用于输入待输入信息页面中的第二待输入信息;其中,第一键盘页面和第二键盘页面分别包括多个键视图,每个键视图对应一个键盘按钮。
本申请实施例中,第一键盘页面包括文本键视图、第一切换键视图和第一删除键视图;第二键盘页面包括数字和字母键视图、第二切换键视图和第二删除键视图。
本申请实施例中,还包括:响应于接收到用户点击第一切换键视图的操作信息,将目标键盘页面由第一键盘页面切换为第二键盘页面;或者响应于接收到用户点击第二切换键视图的操作信息,将目标键盘页面由第二键盘页面切换为第一键盘页面。
本申请实施例中,还包括:响应于接收到用户点击第一删除键视图或第二删除键视图的操作信息,获取输入控件的第一文本属性,确定第一文本属性的第一字符串长度;对输入控件调用删除方法删除待输入信息位的上一位信息;获取输入控件的第二文本属性,确定第二文本属性的第二字符串长度;响应于确定第一字符串长度大于第二字符串长度,完成删除键视图的操作;以及响应于第二字符串长度为0,设置第一删除键视图或第二删除键视图为不可用。
本申请实施例中,基于第二配置文件更新键盘页面为待输入信息位对应的目标键盘页面,包括:响应于确定待输入信息位为第一待输入信息中的信息位,基于第二配置文件更新键盘页面为第一键盘页面;或者响应于确定待输入信息位为第二待输入信息中的信息位,基于第二配置文件更新键盘页面为第二键盘页面。
本申请实施例中,基于第二配置文件更新键盘页面为第一键盘页面,包括:基于第二配置文件确定待输入信息位的第一键盘页面规则;更新键盘页面为第一键盘页面,并基于第一键盘页面规则设置第一键盘页面中的切换键视图和删除键视图为可用或者不可用;基于第二配置文件更新键盘页面为第二键盘页面,包括:基于第二配置文件确定待输入信息位的第二键盘页面规则;更新键盘页面为第二键盘页面,并基于第二键盘页面规则设置第一键盘页面中的切换键视图和删除键视图为可用或者不可用。
本申请实施例中,调用手势响应函数执行点击动作,包括:获取手势状态;响应于手势状态为开始状态,确定目标键视图的类型;响应于目标键视图为文本键视图、数字和字母键视图,对输入控件调用文本输入方法,执行点击动作;响应于目标键视图为删除键视图,对输入控件调用删除方法,执行点击动作;再次获取手势状态;响应于手势状态不为结束状态,递归调用手势响应函数执行点击动作,直至手势状态为结束状态,或者完成对待输入页面中的全部待输入信息位的输入或者删除操作。
本申请实施例中,输入控件包括第一成员变量和第二成员变量,第一成员变量为文本输入控件实例,第二成员变量为数字和字母输入控件实例。
本申请实施例中,第一成员变量采用如下方式进行赋值:创建第一自定义键盘类,在第一自定义键盘类中声明并实例化第三成员变量;在第一自定义键盘类的视图加载方法中,将第三成员变量加入视图层级,并设置视图布局;实例化第一自定义键盘类的子类,将第三成员变量的代理指向文本输入控件实例;将第一成员变量赋值为文本输入控件实例。
本申请实施例中,第二成员变量采用如下方式进行赋值:设置数字和字母输入控件实例为数组,数组包括N个数组元素,每个数组元素为一个输入控件类实例,N为正整数;创建第二自定义键盘类,在第二自定义键盘类中声明并实例化第四成员变量;在第二自定义键盘类的视图加载方法中,将第四成员变量加入视图层级,并设置视图布局;实例化第二自定义键盘类的子类,将第四成员变量的代理指向数字和字母输入控件实例;将第二成员变量赋值为每个数组元素对应的输入控件类实例。
本申请实施例中,数字和字母输入控件实例数组中,包括成员变量禁用键数组;数字和字母键视图采用如下方式显示:将数字和字母输入控件实例的输入界面属性设置为数字字母键盘;响应于数字和字母输入控件实例数组中包括成员变量禁用键数组,将成员变量禁用键数组对应的数字或者字母设置为不可用。
本申请实施例中,还包括:响应于接收到用户发送的信息输入请求,发送键盘即将弹出通知函数;接收键盘即将弹出通知函数的回调函数,回调函数中包括键盘的位置和大小;基于键盘的位置和大小确定待输入信息页面和键盘页面的显示位置。
本申请实施例中,还包括:响应于信息输入完成,发送键盘即将收回通知函数;接收键盘即将收回通知函数的回调函数;调节终端中其他页面的显示位置。
本申请实施例中,还包括:组装待输入信息页面中每一待输入信息位的输入值,得到用户输入信息。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图15是本申请实施例提供的电子设备的示意图。如图15所示,该实施例的电子设备15包括:处理器1501、存储器1502以及存储在该存储器1502中并且可在处理器1501上运行的计算机程序1503。处理器1501执行计算机程序1503时实现上述各个方法实施例中的步骤。或者,处理器1501执行计算机程序1503时实现上述各装置实施例中各模块/单元的功能。
电子设备15可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备15可以包括但不仅限于处理器1501和存储器1502。本领域技术人员可以理解,图15仅仅是电子设备15的示例,并不构成对电子设备15的限定,可以包括比图示更多或更少的部件,或者不同的部件。
处理器1501可以是中央处理单元(Central Processing Unit,CPU),也可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
存储器1502可以是电子设备15的内部存储单元,例如,电子设备15的硬盘或内存。存储器1502也可以是电子设备15的外部存储设备,例如,电子设备15上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。存储器1502还可以既包括电子设备15的内部存储单元也包括外部存储设备。存储器1502用于存储计算机程序以及电子设备所需的其它程序和数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (23)
1.一种基于定制键盘的信息输入方法,其特征在于,包括:
响应于接收到用户发送的信息输入请求,调用输入控件,根据所述输入控件中的第一配置文件显示待输入信息页面和所述定制键盘的键盘页面,其中,所述待输入信息页面中包括多个待输入信息位,所述键盘页面包括多个键视图,每个键视图对应一个键盘按钮;
设置所述待输入信息页面中的待输入信息位为待输入信息中的第一输入位;
基于所述输入控件中的第二配置文件更新所述键盘页面为所述待输入信息位对应的目标键盘页面;
获取用户对所述目标键盘页面中目标键视图进行操作的第一目标动作,基于所述第一目标动作确定所述目标键视图的第一目标关联事件;
调用所述第一目标关联事件对应的代理函数,执行所述第一目标动作并返回第一执行结果;
在所述待输入信息位中输入所述第一执行结果;
更新所述待输入信息页面中的待输入信息位为所述待输入信息中的下一输入位,重复执行更新键盘页面、获取用户的第一目标动作、基于第一目标动作确定第一目标关联事件、调用第一目标关联事件对应的代理函数执行所述第一目标动作并返回第一执行结果、在待输入信息位中输入所述第一执行结果步骤,直至遍历所述待输入信息页面中的所有输入位。
2.根据权利要求1所述的方法,其特征在于,所述第一目标动作包括点击动作,所述点击动作的第一目标关联事件为点击事件;
所述调用所述第一目标关联事件对应的代理函数,执行所述第一目标动作步骤为:
响应于所述第一目标关联事件为点击事件,调用所述第一目标关联事件对应的点击事件代理函数执行所述点击动作,获得所述点击事件代理函数的返回值;
其中,所述点击事件代理函数的返回值为所述目标键视图的值,所述点击事件代理函数包括手势响应函数。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取用户对所述目标键盘页面中目标键视图进行操作的第二目标动作,基于所述第二目标动作确定所述目标键视图的第二目标关联事件;
调用所述第二目标关联事件对应的代理函数,执行所述第二目标动作并返回第二执行结果;
在所述目标键盘页面中显示所述第二执行结果。
4.根据权利要求3所述的方法,其特征在于,所述第二目标动作包括按下动作和抬起动作,所述按下动作的第二目标关联事件为按下瞬间事件,所述抬起动作的第二目标关联事件为抬起瞬间事件;
所述在所述目标键盘页面中显示所述第二执行结果,包括:
响应于所述第二目标关联事件为按下瞬间事件,调用所述第二目标关联事件对应的按下瞬间事件代理函数执行按下瞬间动作,获得所述按下瞬间事件代理函数的返回值,其中,所述按下瞬间事件代理函数的返回值为所述目标键视图大键预览信息;
基于所述大键预览信息生成所述目标键视图的大键预览视图,并在所述目标键盘页面中显示所述大键预览视图;或者
响应于所述第二目标关联事件为抬起瞬间事件,调用所述第二目标关联事件对应的抬起瞬间代理函数执行所述抬起瞬间动作,获得所述抬起瞬间代理函数的返回值,其中,所述抬起瞬间代理函数的返回值为移除所述目标键视图大键预览提示信息;
在所述目标键盘页面中移除所述目标键视图的大键预览视图。
5.根据权利要求4所述的方法,其特征在于,所述大键预览信息包括大键显示位置类型和大键显示名;
所述基于所述大键预览信息生成所述目标键视图的大键预览视图,包括:
创建大键显示实例,所述大键显示实例包括第一属性和第二属性;
将所述大键显示位置类型传入所述大键显示实例的第一属性,将所述大键显示名传入所述大键显示实例的第二属性;
自所述第二配置文件获取所述目标键视图的位置布局信息,基于所述位置布局信息、所述大键显示实例的第一属性和第二属性确定所述目标键视图的大键预览视图。
6.根据权利要求4所述的方法,其特征在于,所述在所述目标键盘页面中移除所述目标键视图的大键预览视图步骤为:
调用实例移除方法,将所述大键显示实例从所述目标键盘页面移除。
7.根据权利要求2所述的方法,其特征在于,所述键盘页面包括第一键盘页面和第二键盘页面,所述第一键盘页面用于输入所述待输入信息页面中的第一待输入信息,所述第二键盘页面用于输入所述待输入信息页面中的第二待输入信息;
其中,所述第一键盘页面和第二键盘页面分别包括多个键视图,每个键视图对应一个键盘按钮。
8.根据权利要求7所述的方法,其特征在于,所述第一键盘页面包括文本键视图、第一切换键视图和第一删除键视图;
所述第二键盘页面包括数字和字母键视图、第二切换键视图和第二删除键视图。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于接收到用户点击所述第一切换键视图的操作信息,将所述目标键盘页面由第一键盘页面切换为第二键盘页面;或者
响应于接收到用户点击所述第二切换键视图的操作信息,将所述目标键盘页面由第二键盘页面切换为第一键盘页面。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于接收到用户点击所述第一删除键视图或第二删除键视图的操作信息,获取所述输入控件的第一文本属性,确定所述第一文本属性的第一字符串长度;
对所述输入控件调用删除方法删除所述待输入信息位的上一位信息;
获取所述输入控件的第二文本属性,确定所述第二文本属性的第二字符串长度;
响应于确定所述第一字符串长度大于所述第二字符串长度,完成删除键视图的操作;以及
响应于所述第二字符串长度为0,设置所述第一删除键视图或第二删除键视图为不可用。
11.根据权利要求8所述的方法,其特征在于,所述基于所述输入控件中的第二配置文件更新所述键盘页面为所述待输入信息位对应的目标键盘页面,包括:
响应于确定所述待输入信息位为所述第一待输入信息中的信息位,基于所述第二配置文件更新所述键盘页面为所述第一键盘页面;或者
响应于确定所述待输入信息位为所述第二待输入信息中的信息位,基于所述第二配置文件更新所述键盘页面为所述第二键盘页面。
12.根据权利要求11所述的方法,其特征在于,所述基于所述第二配置文件更新所述键盘页面为所述第一键盘页面,包括:
基于所述第二配置文件确定所述待输入信息位的第一键盘页面规则;
更新所述键盘页面为所述第一键盘页面,并基于所述第一键盘页面规则设置所述第一键盘页面中的切换键视图和删除键视图为可用或者不可用;
所述基于所述第二配置文件更新所述键盘页面为所述第二键盘页面,包括:
基于所述第二配置文件确定所述待输入信息位的第二键盘页面规则;
更新所述键盘页面为所述第二键盘页面,并基于所述第二键盘页面规则设置所述第一键盘页面中的切换键视图和删除键视图为可用或者不可用。
13.根据权利要求8所述的方法,其特征在于,调用手势响应函数执行所述点击动作,包括:
获取手势状态;
响应于所述手势状态为开始状态,确定所述目标键视图的类型;
响应于所述目标键视图为文本键视图、数字和字母键视图,对所述输入控件调用文本输入方法,执行所述点击动作;
响应于所述目标键视图为删除键视图,对所述输入控件调用删除方法,执行所述点击动作;
再次获取手势状态;
响应于所述手势状态不为结束状态,递归调用所述手势响应函数执行所述点击动作,直至所述手势状态为结束状态,或者完成对待输入页面中的全部待输入信息位的输入或者删除操作。
14.根据权利要求8所述的方法,其特征在于,所述输入控件包括第一成员变量和第二成员变量,所述第一成员变量为文本输入控件实例,所述第二成员变量为数字和字母输入控件实例。
15.根据权利要求14所述的方法,其特征在于,所述第一成员变量采用如下方式进行赋值:
创建第一自定义键盘类,在所述第一自定义键盘类中声明并实例化第三成员变量;
在所述第一自定义键盘类的视图加载方法中,将所述第三成员变量加入视图层级,并设置视图布局;
实例化所述第一自定义键盘类的子类,将所述第三成员变量的代理指向所述文本输入控件实例;
将所述第一成员变量赋值为所述文本输入控件实例。
16.根据权利要求14所述的方法,其特征在于,所述第二成员变量采用如下方式进行赋值:
设置所述数字和字母输入控件实例为数组,所述数组包括N个数组元素,每个数组元素为一个输入控件类实例,N为正整数;
创建第二自定义键盘类,在所述第二自定义键盘类中声明并实例化第四成员变量;
在所述第二自定义键盘类的视图加载方法中,将所述第四成员变量加入视图层级,并设置视图布局;
实例化所述第二自定义键盘类的子类,将所述第四成员变量的代理指向所述数字和字母输入控件实例;
将所述第二成员变量赋值为所述每个数组元素对应的输入控件类实例。
17.根据权利要求16所述的方法,其特征在于,数字和字母输入控件实例数组中,包括成员变量禁用键数组;
所述数字和字母键视图采用如下方式显示:
将所述数字和字母输入控件实例的输入界面属性设置为数字字母键盘;
响应于所述数字和字母输入控件实例数组中包括成员变量禁用键数组,将所述成员变量禁用键数组对应的数字或者字母设置为不可用。
18.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到用户发送的信息输入请求,发送键盘即将弹出通知函数;
接收所述键盘即将弹出通知函数的回调函数,所述回调函数中包括键盘的位置和大小;
基于所述键盘的位置和大小确定所述待输入信息页面和键盘页面的显示位置。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:
响应于信息输入完成,发送键盘即将收回通知函数;
接收所述键盘即将收回通知函数的回调函数;
调节终端中其他页面的显示位置。
20.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在遍历所述待输入信息页面中的所有输入位后,组装所述待输入信息页面中每一待输入信息位的输入值,得到用户输入信息。
21.一种基于定制键盘的信息输入装置,其特征在于,包括:
显示模块,被配置为响应于接收到用户发送的信息输入请求,调用输入控件,根据所述输入控件中的第一配置文件显示待输入信息页面和所述定制键盘的键盘页面,其中,所述待输入信息页面中包括多个待输入信息位,所述键盘页面包括多个键视图,每个键视图对应一个键盘按钮;
设置模块,被配置为设置所述待输入信息页面中的待输入信息位为所述待输入信息中的第一输入位;
更新模块,被配置为基于所述输入控件的第二配置文件更新所述键盘页面为所述待输入信息位对应的目标键盘页面;
获取模块,被配置为获取用户对所述目标键盘页面中目标键视图进行操作的第一目标动作,基于所述第一目标动作确定所述目标键视图的第一目标关联事件;
执行模块,被配置为调用所述第一目标关联事件对应的代理函数,执行所述第一目标动作并返回第一执行结果;
输入模块,被配置为在所述待输入信息位中输入所述第一执行结果;
迭代模块,被配置为更新所述待输入信息页面中的待输入信息位为所述待输入信息中的下一输入位,重复执行更新键盘页面、获取用户的第一目标动作、基于第一目标动作确定第一目标关联事件、调用第一目标关联事件对应的代理函数执行所述第一目标动作并返回第一执行结果、在待输入信息位中输入所述第一执行结果步骤,直至遍历所述待输入信息页面中的所有输入位。
22.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至20中任一项所述方法的步骤。
23.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至20中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410052769.1A CN117572974B (zh) | 2024-01-15 | 2024-01-15 | 基于定制键盘的信息输入方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410052769.1A CN117572974B (zh) | 2024-01-15 | 2024-01-15 | 基于定制键盘的信息输入方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117572974A CN117572974A (zh) | 2024-02-20 |
CN117572974B true CN117572974B (zh) | 2024-03-29 |
Family
ID=89886521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410052769.1A Active CN117572974B (zh) | 2024-01-15 | 2024-01-15 | 基于定制键盘的信息输入方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117572974B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331215A (zh) * | 2012-06-29 | 2015-02-04 | 北京奇虎科技有限公司 | 一种扩展的数据输入装置及方法 |
CN109814965A (zh) * | 2019-01-10 | 2019-05-28 | 北京城市网邻信息技术有限公司 | H5页面的处理方法、装置、电子设备及存储介质 |
CN110703977A (zh) * | 2019-08-30 | 2020-01-17 | 深圳壹账通智能科技有限公司 | H5网页的输入键盘实现方法、装置、设备及存储介质 |
CN111857363A (zh) * | 2020-07-17 | 2020-10-30 | 海信视像科技股份有限公司 | 一种输入法交互方法及显示设备 |
CN112000234A (zh) * | 2020-08-31 | 2020-11-27 | 南京爱福路汽车科技有限公司 | 一种基于h5技术栈的车牌键盘快速输入车牌的方法 |
CN115202604A (zh) * | 2022-07-06 | 2022-10-18 | Vidaa国际控股(荷兰)公司 | 显示设备和键盘语言切换方法 |
CN116301785A (zh) * | 2023-03-28 | 2023-06-23 | 成都赛力斯科技有限公司 | 自定义文本编辑器组件的实现方法及装置 |
CN116931743A (zh) * | 2023-08-09 | 2023-10-24 | 中国平安财产保险股份有限公司 | 车牌号输入方法、装置、设备及存储介质 |
CN116954384A (zh) * | 2023-07-31 | 2023-10-27 | 重庆赛力斯新能源汽车设计院有限公司 | 自定义软键盘的实现方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281385B (zh) * | 2014-09-17 | 2017-03-15 | 北京搜狗科技发展有限公司 | 输入法虚拟键盘的调整方法和输入法装置 |
US10691336B2 (en) * | 2017-03-14 | 2020-06-23 | Adobe Inc. | File-based custom configuration of dynamic keyboards |
-
2024
- 2024-01-15 CN CN202410052769.1A patent/CN117572974B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331215A (zh) * | 2012-06-29 | 2015-02-04 | 北京奇虎科技有限公司 | 一种扩展的数据输入装置及方法 |
CN109814965A (zh) * | 2019-01-10 | 2019-05-28 | 北京城市网邻信息技术有限公司 | H5页面的处理方法、装置、电子设备及存储介质 |
CN110703977A (zh) * | 2019-08-30 | 2020-01-17 | 深圳壹账通智能科技有限公司 | H5网页的输入键盘实现方法、装置、设备及存储介质 |
CN111857363A (zh) * | 2020-07-17 | 2020-10-30 | 海信视像科技股份有限公司 | 一种输入法交互方法及显示设备 |
CN112000234A (zh) * | 2020-08-31 | 2020-11-27 | 南京爱福路汽车科技有限公司 | 一种基于h5技术栈的车牌键盘快速输入车牌的方法 |
CN115202604A (zh) * | 2022-07-06 | 2022-10-18 | Vidaa国际控股(荷兰)公司 | 显示设备和键盘语言切换方法 |
CN116301785A (zh) * | 2023-03-28 | 2023-06-23 | 成都赛力斯科技有限公司 | 自定义文本编辑器组件的实现方法及装置 |
CN116954384A (zh) * | 2023-07-31 | 2023-10-27 | 重庆赛力斯新能源汽车设计院有限公司 | 自定义软键盘的实现方法、装置、电子设备及存储介质 |
CN116931743A (zh) * | 2023-08-09 | 2023-10-24 | 中国平安财产保险股份有限公司 | 车牌号输入方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于Android平台的智能拼音输入法的设计与实现;魏雅芳;中国优秀硕士学位论文全文数据库 信息科技辑;20160215;I138-1015 * |
Also Published As
Publication number | Publication date |
---|---|
CN117572974A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999263B (zh) | 电子装置及提供电子装置的背景的方法 | |
CA2731772C (en) | Graphical context short menu | |
US10503255B2 (en) | Haptic feedback assisted text manipulation | |
CN109690481A (zh) | 动态功能行定制 | |
CN107308643B (zh) | 游戏处理方法及记录介质 | |
KR101554292B1 (ko) | 입력 방식 편집기 사용자 프로파일 | |
CN108984093B (zh) | 触控操作方法、装置、存储介质及电子设备 | |
CN104036196A (zh) | 用于配置口令和用于解锁的装置和方法 | |
CN101304576A (zh) | 用于处理联系信息的方法和设备 | |
CN107678823A (zh) | 移动终端应用的控制方法、装置及存储介质和移动终端 | |
US20110296347A1 (en) | Text entry techniques | |
CN107066188A (zh) | 一种发送截屏图片的方法及终端 | |
CN107678658A (zh) | 用于终端设备的信息输入方法和装置 | |
CN107438835A (zh) | 实现对另一操作系统操作的方法、装置及电子设备 | |
CN104794412A (zh) | 信息输入方法及装置与移动终端 | |
CN103412704B (zh) | 用于通过姿势或触摸控制用户界面的优化方案 | |
CN111324398B (zh) | 最近内容的处理方法、装置、终端及存储介质 | |
CN104657125A (zh) | 一种信息处理方法及电子设备 | |
CN117572974B (zh) | 基于定制键盘的信息输入方法、装置、电子设备及介质 | |
US20160147379A1 (en) | Information processing system, information processing device, and screen display method | |
CN105824864A (zh) | 一种快捷通信的方法及终端 | |
CN104346515A (zh) | 一种信息处理方法及电子设备 | |
CN113010059B (zh) | 应用程序图标管理方法、装置及电子设备 | |
CN105988992A (zh) | 图标推送方法及装置 | |
CN114116077A (zh) | 一种图片编辑方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |