CN116954384A - 自定义软键盘的实现方法、装置、电子设备及存储介质 - Google Patents

自定义软键盘的实现方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116954384A
CN116954384A CN202310965041.3A CN202310965041A CN116954384A CN 116954384 A CN116954384 A CN 116954384A CN 202310965041 A CN202310965041 A CN 202310965041A CN 116954384 A CN116954384 A CN 116954384A
Authority
CN
China
Prior art keywords
keyboard
custom
instance
management class
view
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.)
Pending
Application number
CN202310965041.3A
Other languages
English (en)
Inventor
谭林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Selis Phoenix Intelligent Innovation Technology Co ltd
Original Assignee
Chongqing Seres New Energy Automobile Design Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Seres New Energy Automobile Design Institute Co Ltd filed Critical Chongqing Seres New Energy Automobile Design Institute Co Ltd
Priority to CN202310965041.3A priority Critical patent/CN116954384A/zh
Publication of CN116954384A publication Critical patent/CN116954384A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0219Special purpose keyboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements 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/0233Character input methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements 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/0238Programmable keyboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0489Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
    • G06F3/04895Guidance during keyboard input operation, e.g. prompting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

本申请提供一种自定义软键盘的实现方法、装置、电子设备及存储介质。该方法包括:创建单例键盘管理类,在单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取键盘的状态变化,根据状态变化调整热信号对象的属性值;创建自定义键盘视图方法,利用自定义键盘视图方法进行自定义的键盘视图设置;在应用程序启动时,从服务器下载键盘配置文件,读取本地化的键盘配置文件,并利用键盘配置文件对自定义键盘的主题进行调整,以改变自定义键盘的样式。本申请提升了开发效率,降低代码冗余度,实现动态地对键盘主题进行切换,增强了键盘的个性化体验。

Description

自定义软键盘的实现方法、装置、电子设备及存储介质
技术领域
本申请涉及应用程序开发技术领域,尤其涉及一种自定义软键盘的实现方法、装置、电子设备及存储介质。
背景技术
在移动设备的应用程序开发中,特别是在iOS平台上,软键盘的管理是重要的一环。iOS系统提供了键盘管理的基本功能,但在实际应用中,往往需要对键盘进行更深度的自定义和优化。
在现有技术中,应用程序通常通过监听系统通知来接收和处理键盘的弹出和收起事件。然而,这种方式需要在每个需要响应键盘事件的地方都进行监听,带来了开发效率的问题,同时增加了代码的冗余性。此外,对于自定义键盘的需求,在现有技术中处理起来相对困难。现有的方案难以实现动态地对键盘主题进行切换,这限制了应用程序的个性化体验。这种需求尤其在涉及用户体验优化的情况下尤为重要。另外,现有的键盘管理方法通常需要依赖第三方库,虽然这些库提供了丰富的功能,但使用它们会增加应用程序的大小,这对设备存储空间有限制的用户来说是个问题,并且使用第三方库也可能带来稳定性问题。
发明内容
有鉴于此,本申请实施例提供了一种自定义软键盘的实现方法、装置、电子设备及存储介质,以解决现有技术存在的开发效率降低,代码冗余度增加,难以实现动态的、个性化的键盘主题更换的问题。
本申请实施例的第一方面,提供了一种自定义软键盘的实现方法,包括:创建单例键盘管理类,其中单例键盘管理类为处理键盘管理任务的实例;在单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取键盘的状态变化,根据状态变化调整热信号对象的属性值;在单例键盘管理类中创建自定义键盘视图方法,利用自定义键盘视图方法进行自定义的键盘视图设置,并利用热信号对象的属性值调整自定义键盘的高度;在应用程序启动时,从服务器下载键盘配置文件,利用单例键盘管理类读取本地化的键盘配置文件,并利用键盘配置文件对自定义键盘的主题进行调整,以改变自定义键盘的样式。
本申请实施例的第二方面,提供了一种自定义软键盘的实现装置,包括:创建模块,被配置为创建单例键盘管理类,其中单例键盘管理类为处理键盘管理任务的实例;监听模块,被配置为在单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取键盘的状态变化,根据状态变化调整热信号对象的属性值;设置模块,被配置为在单例键盘管理类中创建自定义键盘视图方法,利用自定义键盘视图方法进行自定义的键盘视图设置,并利用热信号对象的属性值调整自定义键盘的高度;调整模块,被配置为在应用程序启动时,从服务器下载键盘配置文件,利用单例键盘管理类读取本地化的键盘配置文件,并利用键盘配置文件对自定义键盘的主题进行调整,以改变自定义键盘的样式。
本申请实施例的第三方面,提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过创建单例键盘管理类,其中单例键盘管理类为处理键盘管理任务的实例;在单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取键盘的状态变化,根据状态变化调整热信号对象的属性值;在单例键盘管理类中创建自定义键盘视图方法,利用自定义键盘视图方法进行自定义的键盘视图设置,并利用热信号对象的属性值调整自定义键盘的高度;在应用程序启动时,从服务器下载键盘配置文件,利用单例键盘管理类读取本地化的键盘配置文件,并利用键盘配置文件对自定义键盘的主题进行调整,以改变自定义键盘的样式。本申请提升了开发效率,降低代码冗余度,实现动态地对键盘主题进行切换,增强了键盘的个性化体验,并且避免了第三方库带来的安全性和稳定性问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的自定义软键盘的实现方法的流程示意图;
图2是本申请实施例提供的自定义软键盘的实现装置的结构示意图;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为解决背景技术中所描述的问题,本申请实施例提供了一种在iOS应用程序中自定义软键盘的方法。本申请技术方案中,通过创建单例键盘管理类和利用响应式编程库,能够有效地监听键盘的弹出和隐藏事件,并将这些事件与预设的热信号对象进行绑定。这种方式避免了在多个类中重复监听系统通知的问题,提高了代码的复用性,减少了冗余代码,优化了开发效率。本申请技术方案提供了自定义键盘视图方法,使开发者能够根据不同的应用场景和用户需求,定制独特的键盘视图,包括但不限于键盘的高度、颜色等属性。这大大增强了应用的个性化体验,提升了用户满意度。本申请技术方案可以从服务器下载键盘配置文件,并利用单例键盘管理类读取本地化的配置文件,根据配置文件对自定义键盘的主题进行动态调整。这使得应用程序能够根据服务器的配置动态修改键盘的主题,或者内置多款键盘样式进行主题切换,包括但不限于背景图片、按钮图片等,进一步增强了应用的个性化体验。另外,本申请技术方案不依赖于任何第三方库,降低了应用程序的大小,提高了应用的稳定性,并增强了可定制化开发的能力。
下面结合附图以及具体实施例对本申请技术方案的内容进行详细描述。
图1是本申请实施例提供的自定义软键盘的实现方法的流程示意图。图1的自定义软键盘的实现方法可以由应用程序来执行。如图1所示,该自定义软键盘的实现方法具体可以包括:
S101,创建单例键盘管理类,其中单例键盘管理类为处理键盘管理任务的实例;
S102,在单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取键盘的状态变化,根据状态变化调整热信号对象的属性值;
S103,在单例键盘管理类中创建自定义键盘视图方法,利用自定义键盘视图方法进行自定义的键盘视图设置,并利用热信号对象的属性值调整自定义键盘的高度;
S104,在应用程序启动时,从服务器下载键盘配置文件,利用单例键盘管理类读取本地化的键盘配置文件,并利用键盘配置文件对自定义键盘的主题进行调整,以改变自定义键盘的样式。
首先对本申请实施例在实际应用场景中涉及的一些技术术语进行解释,具体可以包括以下内容:
UIView:UIView是iOS中UIKit框架的基础组件,所有的视图和视图控制器都是从它派生出来的。它封装了绘图、布局、事件处理等基本的应用界面功能。任何在iOS设备屏幕上看到的内容,如文本、图像、视频、控件等,都被绘制在UIView或其子类的实例上。
inputView:在iOS开发中,inputView是UIView的一个属性,是用于定义当用户与该视图进行交互时应该显示的键盘或者其他输入方式的视图。对于UI TextField或UITextView这样的文本输入框,可以通过自定义inputView来实现自定义键盘。默认情况下,inputView为系统键盘,但如果您提供了自定义视图,那么当用户与文本输入框交互时,系统将显示自定义视图,而不是标准的系统键盘。
RxSwift:RxSwift是一个基于Swift语言实现的响应式编程库,它是响应式X(ReactiveX)编程概念在Swift语言中的实现。RxSwift提供了一种强大且灵活的方式来响应数据的变化并对其进行处理。它可以将异步操作、事件流和数据流序列化,方便程序员处理复杂的异步场景,如网络请求、用户界面事件等。
BehaviorSubject:在RxSwift中,BehaviorSubject是一种特殊类型的观察者模式,它可以存储并发送当前值给其订阅者,同时它也能发送后来的新值。因此,当创建一个BehaviorSubject时,需要提供一个初始值。然后,订阅者可以接收到这个初始值或者最新的元素。所以它也被称为热信号,因为订阅者能够获取到订阅之前发生的事件值。
在一些实施例中,创建单例键盘管理类,包括:在应用程序启动时,创建一个管理类对象,对管理类对象进行初始化,得到单例键盘管理类,其中,管理类对象采用单例模式,单例键盘管理类中包含键盘的所有管理任务。
具体地,首先在应用程序启动时,会创建一个单例的键盘管理类,该管理类被命名为“RxKeyBoardTool”。创建这个类的目的是为了处理所有与键盘有关的管理任务,包括但不限于键盘的弹出、隐藏、主题更换、高度调整等。这个管理类采用单例模式设计,以确保在整个应用程序的生命周期中,只会存在一个此类的实例,这样做的好处是可以防止重复创建实例造成的资源浪费,同时也可以简化对键盘管理的操作。
进一步地,创建"RxKeyBoardTool"的过程可以包括以下步骤:首先,当应用程序启动时,系统会首先调用一个特定的初始化方法来创建一个"RxKeyBoar dTool"的实例;然后,为了保证全局只有一个该实例,会采用单例模式进行设计,即在类的内部定义一个静态变量来存储这个唯一的实例,并提供一个公开的方法来获取这个唯一的实例。
创建并初始化"RxKeyBoardTool"实例之后,就可以开始进行键盘管理的相关操作。例如,当需要弹出键盘时,"RxKeyBoardTool"会监听相关的系统事件,并在接收到这些事件后,将键盘弹出;同样,当需要隐藏键盘时,"RxKeyBoar dTool"也会监听相关的系统事件,并在接收到这些事件后,将键盘隐藏。在进行这些操作的过程中,"RxKeyBoardTool"会使用预设的热信号对象进行操作,使得键盘状态的变化可以实时反映到视图上。
此外,"RxKeyBoardTool"还能够进行键盘的主题更换和高度调整。例如,当需要更换键盘主题时,"RxKeyBoardTool"会读取从服务器下载的键盘配置文件,并根据文件中的设置来调整键盘的主题;同样,当需要调整键盘的高度时,"RxKeyBoardTool"也会根据需要来调整热信号对象的属性值,从而改变键盘的高度。
在一些实施例中,在单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,包括:在单例键盘管理类中创建响应式编程库,并在单例键盘管理类中设置热信号对象,利用响应式编程库对键盘的弹出事件和隐藏事件的通知进行监听,其中,热信号对象用于接收和保存键盘的高度值。
具体地,本申请实施例在单例键盘管理类“RxKeyBoardTool”中集成了预定的响应式编程库RxSwift,其主要功能是监听键盘的弹出和隐藏事件。下面结合具体实施例对响应式编程库监听键盘变化的过程及原理进行详细说明,具体可以包括以下内容:
在单例键盘管理类“RxKeyBoardTool”中,首先创建了一个响应式编程库RxSwift。RxSwift是一个用于Swift的响应式编程库,它能够让数据和事件流处理变得更加简单和直观。之后,"RxKeyBoardTool"在类中设置一个热信号对象,即BehaviorSubject。这个热信号对象的初始值为空,它的主要功能是接收和保存键盘的高度值。通过对这个热信号对象的操作,本申请实施例可以很方便地获取到键盘的高度,并且在键盘高度发生变化时,可以立即将这个变化反映到视图上。
进一步地,在设置了热信号对象之后,"RxKeyBoardTool"就可以利用RxS wift库来对键盘的弹出和隐藏事件进行监听了。例如,"RxKeyBoardTool"会使用RxSwift提供的函数来监听系统的键盘弹出和隐藏通知(例如"keyboardWill ShowNotification"和"keyboardWillHideNotification")。当接收到这些通知时,"RxKeyBoardTool"会将键盘的高度值保存到热信号对象中,并且根据这个值来调整自定义键盘的高度。
在一些实施例中,将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取键盘的状态变化,根据状态变化调整热信号对象的属性值,包括:将热信号对象与键盘的弹出事件和隐藏事件的通知进行绑定,当监听到键盘的弹出事件和隐藏事件的通知时,确定键盘的高度变化,根据键盘的高度变化对热信号对象的属性值进行调整,以便对键盘的高度变化进行响应;其中,热信号对象的初始属性值为空。
具体地,本申请实施例通过将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,从而获取键盘的状态变化并根据状态变化调整热信号对象的属性值。下面结合具体实施例对使用响应式编程方法监听键盘的弹出和收起(即隐藏)的过程及原理进行详细说明,具体可以包括以下内容:
首先,在单例键盘管理类“RxKeyBoardTool”中,创建一个热信号对象,其初始属性值设为空。该热信号对象作为键盘高度的信号发射器,主要负责接收和保存键盘的高度值。
其次,利用响应式编程库RxSwift的能力,将热信号对象与键盘的弹出事件和隐藏事件的通知进行绑定。例如,当RxSwift监听到键盘的弹出事件和隐藏事件的通知时,即系统的"keyboardWillShowNotification"和"keyboardWillHide Notification",它会获取到键盘的当前高度,并将这个高度值赋给热信号对象的属性值。这样,热信号对象的属性值就能始终与键盘的高度保持一致。
最后,由于热信号对象的属性值与键盘的高度变化进行了绑定,本申请实施例就可以在应用程序的任何地方订阅这个热信号,从而方便地监听键盘的高度变化。这一设计不仅提供了极大的便利性,也简化了实现流程。
由此可见,本申请实施例在单例类中使用响应式编程方法来监听键盘的显示和隐藏。响应式编程是一种编程范式,它允许对数据的变化进行响应。当键盘显示或隐藏时,本申请实施例会接收到一个通知,然后更新热信号(一个可以接收多次值的信号源)。这样就可以在应用的任何地方监听这个信号,从而知道键盘的高度何时发生变化,而不必在每个需要用到键盘的地方都写一遍监听代码。
在一些实施例中,利用自定义键盘视图方法进行自定义的键盘视图设置,并利用热信号对象的属性值调整自定义键盘的高度,包括:利用自定义键盘视图方法接收自定义键盘视图的参数,并将自定义键盘视图设置为文本输入框的文本输入视图;响应于对文本输入框的激活操作,获取热信号对象的属性值,根据热信号对象的属性值对自定义键盘的高度进行调整,并将自定义键盘视图进行显示。
具体地,本申请实施例还引入了一个用于创建和管理自定义键盘视图的方法,称为setCustomBoard(view:UIView)(即自定义键盘视图方法)。这个方法是在之前定义的单例键盘管理类中定义的,它接收一个UIView类型的参数,这个参数代表了要设置的自定义键盘视图。开发者可以自定义一个键盘视图,它可能是中文输入、英文输入、车牌号输入、数字输入等各种类型的键盘视图。开发者创建完成自定义键盘视图后,通过调用setCustomBoard方法并传入自定义键盘视图,将该自定义键盘视图设置为特定文本输入框的inputView,从而替换默认的键盘视图。
进一步地,当文本输入框被用户激活,例如当用户点击文本输入框准备输入文字时,系统就会获取已经绑定的热信号对象的属性值。这个热信号对象的属性值代表了键盘的高度,它会在键盘的弹出和隐藏事件发生时自动更新。接着,系统会根据热信号对象的属性值,也就是键盘的高度,动态地调整自定义键盘视图的高度。通过这种方式,自定义键盘视图的高度始终与实际键盘的高度保持一致,从而为用户提供了良好的体验。
进一步地,系统将显示自定义键盘视图,替代默认的键盘视图。这样,用户在文本输入框被激活,准备输入文字时,看到的就是自定义的键盘视图,而不是系统默认的键盘视图。
需要说明的是,如果开发者没有调用setCustomBoard方法设置自定义键盘视图,那么系统会使用默认的键盘弹窗。在这种情况下,键盘管理类仍然会监听键盘的弹出和隐藏事件,并且维护热信号对象的属性值,以便在其他地方使用。
根据上述实施例提供的方法,本申请实施例使用setCustomBoard方法设置自定义键盘视图。这个方法允许用户提供一个自定义的UIView,这个UIView就是自定义的键盘视图。当自定义键盘视图被设置为文本输入框的inputView后,即当文本输入框被激活时,就会显示自定义键盘。此外,由于之前已经绑定了热信号到键盘的弹出和隐藏通知上,所以自定义键盘的高度也会随着键盘的状态变化而改变。
在一些实施例中,利用单例键盘管理类读取本地化的键盘配置文件,并利用键盘配置文件对自定义键盘的主题进行调整,包括:在单例键盘管理类中设置用于读取本地化的键盘配置文件的对象,从本地内存中读取键盘配置文件中的键盘主题属性,若读取到键盘配置文件,利用键盘主题属性对自定义键盘的主题进行调整;若未读取到键盘配置文件,使用默认的系统键盘样式。
具体地,应用程序在启动时,从服务器端下载预设的键盘配置文件,在实际应用中,键盘配置文件的内容包括但不限于键盘的主题背景、颜色、布局方式和边距等一系列参数。下载完成后,配置文件会被保存在本地内存中以便随时读取。
在程序设计中,本申请实施例使用了单例设计模式创建了一个键盘管理类。这个键盘管理类中,有一个读取服务器获取的键盘主题对象作为其属性。在需要设置自定义键盘的地方,键盘管理类就会从本地内存中读取预先下载的键盘配置文件。
当读取到键盘配置文件后,键盘管理类将解析文件中的键值对,从中获取键盘主题属性,包括主题背景图片、颜色、布局方式、边距等。然后,根据这些属性来设置自定义键盘的样式,从而达到对自定义键盘主题进行动态调整的效果。然而,也有可能出现无法从服务器获取键盘配置文件的情况,此时,我们的设计就会使用默认的系统键盘样式。这样,即使在无网络或者服务器无法响应的情况下,用户依然可以使用系统默认的键盘进行输入。
在实际应用中,配置文件由Json格式组成,这是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在配置文件中,每一个键值对都对应一个特定的设置,比如键盘的主题背景图片、颜色、布局方式、边距等。
由此可见,本申请实施例还通过服务器配置键盘主题,本申请实施例提供了从服务器下载键盘配置的功能。在应用程序启动时,会从服务器下载键盘配置文件,然后保存到本地。这个配置文件是JSON格式的,包含了键盘的各种设置,比如主题背景图片、颜色、布局方式、边距等。然后在RxKeyBoardTool类中,可以从本地读取这些配置信息,并将这些配置信息应用到自定义键盘上,从而调整自定义键盘的主题和呈现样式。如果没有读取到配置信息,或者没有自定义键盘,则使用默认的系统键盘样式。
根据上述实施例提供的方法,通过这种方式,本申请实施例提供了一种高度可定制化的键盘设计方案,既可以提供多样化的输入体验,又能在特定情况下保证基础的输入功能,提高了应用程序的多样性和用户体验。
在一些实施例中,该方法还包括:当用户点击文本输入框,且未自定义键盘视图时,使用响应式编程库对键盘的弹出事件和隐藏事件进行监听,以获取键盘的状态变化;当调用自定义键盘视图方法,且用户点击文本输入框时,利用自定义键盘视图方法进行自定义的键盘视图设置;当从服务器读取到键盘配置文件,且用户点击文本输入框,且用户自定义了键盘视图时,利用键盘配置文件对自定义键盘的主题进行调整。
具体地,当用户点击文本输入框时,应用程序会根据用户是否设置了自定义键盘视图和是否从服务器下载了键盘配置文件来决定采取何种方式进行键盘的显示和管理。
在一个示例中,如果用户未设置自定义键盘视图,那么本申请的应用程序将采用响应式编程库对系统默认键盘的弹出事件和隐藏事件进行监听。本申请实施例之前在键盘管理类中已经实现了这个功能,即通过绑定热信号对象的属性值来实时获取和调整键盘的高度。在这种情况下,主要依赖系统默认的键盘来进行用户输入。
在另一个示例中,如果用户调用了setCustomBoard方法设置了自定义键盘视图,并且点击了文本输入框,那么本申请实施例将利用该自定义键盘视图方法进行键盘视图的设置。自定义键盘视图的显示和隐藏同样通过响应式编程库进行管理,键盘的高度也会根据热信号对象的属性值进行动态调整。
在另一个示例中,如果用户从服务器下载了键盘配置文件,并且设置了自定义键盘视图,那么当用户点击文本输入框时,本申请实施例将利用键盘配置文件对自定义键盘的主题进行调整。这个过程包括从本地内存中读取键盘配置文件,解析键盘主题属性,然后根据这些属性调整自定义键盘的主题。
需要注意的是,以上三种情况是独立且同时进行的,即本申请实施例的应用程序会根据当前的状态选择最适合的键盘显示方式。这种设计使得应用程序具有很高的灵活性,既能满足用户个性化键盘的需求,又能在各种环境下保证基础的输入功能。
根据本申请实施例提供的技术方案,本申请实施例利用了RxSwift的响应式编程能力,对键盘的变化进行了精确、实时的监听。通过设置setCustomBoa rd方法,能够自定义键盘视图,使得键盘的显示样式和功能更加丰富多样,提高了用户使用体验。此外,通过服务器下载的键盘配置文件,可以根据产品需求进行键盘主题的调整,使得产品的风格和主题更加统一,并且有利于用户的使用。
在实用性方面,本申请的方法可以在任何类中进行监听,使用简便,代码量小,避免了冗余代码的出现,节省了开发时间,提高了开发效率。在定制性方面,本申请提供了丰富的自定义键盘视图选项,包括但不限于中文输入、英文输入、车牌号输入、数字输入等多种类型视图,满足了各种复杂应用场景的需求。在灵活性方面,通过从服务器下载配置文件,本申请允许开发者对键盘主题进行定制,比如主题背景图片、颜色、布局方式、边距等,从而使得键盘的显示效果更加贴合产品的整体风格。
因此,综上所述,本申请的技术方案集响应式监听、自定义视图设置、服务器配置等多种技术于一身,既实现了键盘的高度灵活性和可定制性,又保证了代码的简洁高效,为提升产品的用户体验提供了强有力的技术支持。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图2是本申请实施例提供的自定义软键盘的实现装置的结构示意图。如图2所示,该自定义软键盘的实现装置包括:
创建模块201,被配置为创建单例键盘管理类,其中单例键盘管理类为处理键盘管理任务的实例;
监听模块202,被配置为在单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取键盘的状态变化,根据状态变化调整热信号对象的属性值;
设置模块203,被配置为在单例键盘管理类中创建自定义键盘视图方法,利用自定义键盘视图方法进行自定义的键盘视图设置,并利用热信号对象的属性值调整自定义键盘的高度;
调整模块204,被配置为在应用程序启动时,从服务器下载键盘配置文件,利用单例键盘管理类读取本地化的键盘配置文件,并利用键盘配置文件对自定义键盘的主题进行调整,以改变自定义键盘的样式。
在一些实施例中,图2的创建模块201在应用程序启动时,创建一个管理类对象,对管理类对象进行初始化,得到单例键盘管理类,其中,管理类对象采用单例模式,单例键盘管理类中包含键盘的所有管理任务。
在一些实施例中,图2的监听模块202在单例键盘管理类中创建响应式编程库,并在单例键盘管理类中设置热信号对象,利用响应式编程库对键盘的弹出事件和隐藏事件的通知进行监听,其中,热信号对象用于接收和保存键盘的高度值。
在一些实施例中,图2的监听模块202将热信号对象与键盘的弹出事件和隐藏事件的通知进行绑定,当监听到键盘的弹出事件和隐藏事件的通知时,确定键盘的高度变化,根据键盘的高度变化对热信号对象的属性值进行调整,以便对键盘的高度变化进行响应;其中,热信号对象的初始属性值为空。
在一些实施例中,图2的设置模块203利用自定义键盘视图方法接收自定义键盘视图的参数,并将自定义键盘视图设置为文本输入框的文本输入视图;响应于对文本输入框的激活操作,获取热信号对象的属性值,根据热信号对象的属性值对自定义键盘的高度进行调整,并将自定义键盘视图进行显示。
在一些实施例中,图2的调整模块204在单例键盘管理类中设置用于读取本地化的键盘配置文件的对象,从本地内存中读取键盘配置文件中的键盘主题属性,若读取到键盘配置文件,利用键盘主题属性对自定义键盘的主题进行调整;若未读取到键盘配置文件,使用默认的系统键盘样式。
在一些实施例中,图2的判断模块205,当用户点击文本输入框,且未自定义键盘视图时,使用响应式编程库对键盘的弹出事件和隐藏事件进行监听,以获取键盘的状态变化;当调用自定义键盘视图方法,且用户点击文本输入框时,利用自定义键盘视图方法进行自定义的键盘视图设置;当从服务器读取到键盘配置文件,且用户点击文本输入框,且用户自定义了键盘视图时,利用键盘配置文件对自定义键盘的主题进行调整。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图3是本申请实施例提供的电子设备3的结构示意图。如图3所示,该实施例的电子设备3包括:处理器301、存储器302以及存储在该存储器302中并且可以在处理器301上运行的计算机程序303。处理器301执行计算机程序303时实现上述各个方法实施例中的步骤。或者,处理器301执行计算机程序303时实现上述各装置实施例中各模块/单元的功能。
示例性地,计算机程序303可以被分割成一个或多个模块/单元,一个或多个模块/单元被存储在存储器302中,并由处理器301执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序303在电子设备3中的执行过程。
电子设备3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备3可以包括但不仅限于处理器301和存储器302。本领域技术人员可以理解,图3仅仅是电子设备3的示例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,电子设备还可以包括输入输出设备、网络接入设备、总线等。
处理器301可以是中央处理单元(Central Processing Unit,CPU),也可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器302可以是电子设备3的内部存储单元,例如,电子设备3的硬盘或内存。存储器302也可以是电子设备3的外部存储设备,例如,电子设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器302还可以既包括电子设备3的内部存储单元也包括外部存储设备。存储器302用于存储计算机程序以及电子设备所需的其它程序和数据。存储器302还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种自定义软键盘的实现方法,其特征在于,包括:
创建单例键盘管理类,其中所述单例键盘管理类为处理键盘管理任务的实例;
在所述单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将所述键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取所述键盘的状态变化,根据所述状态变化调整所述热信号对象的属性值;
在所述单例键盘管理类中创建自定义键盘视图方法,利用所述自定义键盘视图方法进行自定义的键盘视图设置,并利用所述热信号对象的属性值调整自定义键盘的高度;
在应用程序启动时,从服务器下载键盘配置文件,利用所述单例键盘管理类读取本地化的所述键盘配置文件,并利用所述键盘配置文件对所述自定义键盘的主题进行调整,以改变所述自定义键盘的样式。
2.根据权利要求1所述的方法,其特征在于,所述创建单例键盘管理类,包括:
在所述应用程序启动时,创建一个管理类对象,对所述管理类对象进行初始化,得到所述单例键盘管理类,其中,所述管理类对象采用单例模式,所述单例键盘管理类中包含键盘的所有管理任务。
3.根据权利要求1所述的方法,其特征在于,所述在所述单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,包括:
在所述单例键盘管理类中创建所述响应式编程库,并在所述单例键盘管理类中设置所述热信号对象,利用所述响应式编程库对键盘的弹出事件和隐藏事件的通知进行监听,其中,所述热信号对象用于接收和保存键盘的高度值。
4.根据权利要求3所述的方法,其特征在于,所述将所述键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取所述键盘的状态变化,根据所述状态变化调整所述热信号对象的属性值,包括:
将所述热信号对象与所述键盘的弹出事件和隐藏事件的通知进行绑定,当监听到所述键盘的弹出事件和隐藏事件的通知时,确定所述键盘的高度变化,根据所述键盘的高度变化对所述热信号对象的属性值进行调整,以便对所述键盘的高度变化进行响应;其中,所述热信号对象的初始属性值为空。
5.根据权利要求1所述的方法,其特征在于,所述利用所述自定义键盘视图方法进行自定义的键盘视图设置,并利用所述热信号对象的属性值调整自定义键盘的高度,包括:
利用所述自定义键盘视图方法接收自定义键盘视图的参数,并将所述自定义键盘视图设置为文本输入框的文本输入视图;
响应于对所述文本输入框的激活操作,获取所述热信号对象的属性值,根据所述热信号对象的属性值对所述自定义键盘的高度进行调整,并将所述自定义键盘视图进行显示。
6.根据权利要求1所述的方法,其特征在于,所述利用所述单例键盘管理类读取本地化的所述键盘配置文件,并利用所述键盘配置文件对所述自定义键盘的主题进行调整,包括:
在所述单例键盘管理类中设置用于读取本地化的所述键盘配置文件的对象,从本地内存中读取所述键盘配置文件中的键盘主题属性,若读取到所述键盘配置文件,利用所述键盘主题属性对所述自定义键盘的主题进行调整;若未读取到所述键盘配置文件,使用默认的系统键盘样式。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当用户点击文本输入框,且未自定义键盘视图时,使用所述响应式编程库对键盘的弹出事件和隐藏事件进行监听,以获取所述键盘的状态变化;
当调用所述自定义键盘视图方法,且用户点击文本输入框时,利用所述自定义键盘视图方法进行自定义的键盘视图设置;
当从服务器读取到所述键盘配置文件,且用户点击文本输入框,且用户自定义了键盘视图时,利用所述键盘配置文件对所述自定义键盘的主题进行调整。
8.一种自定义软键盘的实现装置,其特征在于,包括:
创建模块,被配置为创建单例键盘管理类,其中所述单例键盘管理类为处理键盘管理任务的实例;
监听模块,被配置为在所述单例键盘管理类中使用预定的响应式编程库,监听键盘的弹出事件和隐藏事件,并将所述键盘的弹出事件和隐藏事件与预设的热信号对象进行绑定,以便获取所述键盘的状态变化,根据所述状态变化调整所述热信号对象的属性值;
设置模块,被配置为在所述单例键盘管理类中创建自定义键盘视图方法,利用所述自定义键盘视图方法进行自定义的键盘视图设置,并利用所述热信号对象的属性值调整自定义键盘的高度;
调整模块,被配置为在应用程序启动时,从服务器下载键盘配置文件,利用所述单例键盘管理类读取本地化的所述键盘配置文件,并利用所述键盘配置文件对所述自定义键盘的主题进行调整,以改变所述自定义键盘的样式。
9.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202310965041.3A 2023-07-31 2023-07-31 自定义软键盘的实现方法、装置、电子设备及存储介质 Pending CN116954384A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310965041.3A CN116954384A (zh) 2023-07-31 2023-07-31 自定义软键盘的实现方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310965041.3A CN116954384A (zh) 2023-07-31 2023-07-31 自定义软键盘的实现方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116954384A true CN116954384A (zh) 2023-10-27

Family

ID=88452815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310965041.3A Pending CN116954384A (zh) 2023-07-31 2023-07-31 自定义软键盘的实现方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116954384A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117572974A (zh) * 2024-01-15 2024-02-20 成都赛力斯科技有限公司 基于定制键盘的信息输入方法、装置、电子设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117572974A (zh) * 2024-01-15 2024-02-20 成都赛力斯科技有限公司 基于定制键盘的信息输入方法、装置、电子设备及介质
CN117572974B (zh) * 2024-01-15 2024-03-29 成都赛力斯科技有限公司 基于定制键盘的信息输入方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
CN112363794B (zh) 一种前端列表类组件的渲染方法及电子设备
CN111240777B (zh) 动态壁纸生成方法、装置、存储介质及电子设备
CN109471626B (zh) 页面逻辑结构、页面生成方法、页面数据处理方法及装置
EP2908231A1 (en) Object suspension realizing method and device
CN111309216B (zh) 列表页面的显示方法、装置、计算机设备及存储介质
CN103324471A (zh) 动态修改应用启动图标的方法、消息的发送方法、终端
CN116954384A (zh) 自定义软键盘的实现方法、装置、电子设备及存储介质
WO2016118769A1 (en) Processing application interface
AU2015376591A1 (en) Desktop sharing method and mobile terminal
CN111209065A (zh) 动态壁纸设置方法、装置、存储介质及电子设备
CN111240774A (zh) 动态壁纸生成方法、装置、存储介质及电子设备
CN111476007B (zh) 表格生成方法、装置、计算机装置及计算机可读存储介质
CN113590072A (zh) 一种分屏显示方法及其设备
CN115599363A (zh) 可视化组件的配置方法、装置以及系统
CN114721761A (zh) 一种终端设备、应用图标管理方法和存储介质
CN110764862A (zh) 一种桌面壁纸显示的方法、装置、终端设备及存储介质
CN113157270A (zh) 一种页面适配方法和装置
CN110673827B (zh) 基于安卓系统的资源调用方法及装置、电子设备
KR100880126B1 (ko) 맞춤형 대기화면 구성 기능을 구비한 이동통신 단말기
CN112274910A (zh) 虚拟按键配置方法、虚拟按键方法及相关装置
CN110333859B (zh) 页面创建方法、装置、电子设备和计算机可读存储介质
US20140108972A1 (en) Reconfigurable self-service kiosk
CN111752454A (zh) 应用程序界面的皮肤控制方法、装置、终端及介质
CN111367561A (zh) 软件程序远程开发方法及装置
CN116301785A (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
TA01 Transfer of patent application right

Effective date of registration: 20240118

Address after: No. 13 Xingxiang Road, Zengjia Town, High tech Zone, Shapingba District, Chongqing, 400039

Applicant after: Chongqing Selis Phoenix Intelligent Innovation Technology Co.,Ltd.

Address before: 401120 No. 618 Liangjiang Avenue, Longxing Town, Yubei District, Chongqing City

Applicant before: Chongqing Celes New Energy Automobile Design Institute Co.,Ltd.

TA01 Transfer of patent application right