CN108874418B - Ui组件的更新方法、装置、终端及计算机可读存储介质 - Google Patents
Ui组件的更新方法、装置、终端及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108874418B CN108874418B CN201810503376.2A CN201810503376A CN108874418B CN 108874418 B CN108874418 B CN 108874418B CN 201810503376 A CN201810503376 A CN 201810503376A CN 108874418 B CN108874418 B CN 108874418B
- Authority
- CN
- China
- Prior art keywords
- component
- update
- layer
- core layer
- parameters
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出了一种UI组件的更新方法,包括:通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;所述第一功能层将基于所述对象标识获取到的UI组件对象,所述执行函数的标识,及所述更新参数封装为所述第二功能层可识别的第二更新信息,并将所述第二更新信息发送至所述第二功能层;根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新。本发明还公开了一种UI组件的更新装置、终端及计算机可读存储介质,通过实施上述方案,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种UI组件的更新方法、装置、终端及计算机可读存储介质。
背景技术
随着计算机设备(例如,移动终端)的快速发展,APP(Application,应用程序)得到了快速普及。APP通常采用基于计算机设备原生系统开发语言进行开发。但现有技术对APP中的基于计算机设备原生系统开发语言开发的UI(User Interface,用户交互界面))组件(例如:页面中的按钮)的属性(例如:大小、尺寸、颜色和/或执行逻辑等)进行修改,通常需要发布新的APP安装包,以对APP中的一个或多个UI组件的属性进行修改,但发布新版本的APP安装包需要计算机设备原生系统的应用程序管理平台对新版本的APP安装包进行审核,因此不能将新版本的APP安装包实时上线,以供用户下载安装,同时新版本的APP安装包的发布之后,部分用户并不能及时的下载安装,因此并不能实时更新APP中UI组件的属性。
发明内容
本发明提出了一种UI组件的更新方法、装置、终端及计算机可读存储介质,用以解决现有技术中应用程序中的UI组件不能实时更新的问题。
本发明采用的技术方案是提供一种用户交互界面UI组件的更新方法,应用于基于混合开发模式所开发的应用程序中,所述方法包括:
通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;所述第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,所述UI组件对应执行函数的标识,及所述UI组件的更新参数;
所述第一功能层将基于所述对象标识获取到的UI组件对象,所述执行函数的标识,及所述更新参数封装为所述第二功能层可识别的第二更新信息,并将所述第二更新信息发送至所述第二功能层;
根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新。
可选的,所述第一功能层包括:第一业务层;
所述通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息,包括:
通过所述第一业务层接收服务器发送的所述第一更新信息。
可选的,所述第一功能层还包括:第一核心层;所述第二功能层包括:第二业务层和第二核心层;
所述第一功能层将基于所述对象标识获取到的UI组件对象,所述执行函数的标识,及所述更新参数封装为所述第二功能层可识别的第二更新信息,并将所述第二更新信息发送至所述第二功能层,包括:
所述第一业务层基于所述对象标识获取UI组件对象,并将所述UI组件对象、所述执行函数的标识,及所述更新参数发送至第一核心层;
所述第一核心层将所述UI组件对象、所述执行函数的标识,及所述更新参数封装为所述第二核心层可识别的第二更新信息,并将所述第二更新信息发送至所述第二核心层。
可选的,所述第一业务层基于所述对象标识获取UI组件对象,包括:
所述第一业务层基于所述对象标识检测所述第一核心层是否缓存所述UI组件对象;
若所述第一核心层已缓存所述UI组件对象,则获取所述第一核心层中缓存的所述UI组件对象;
否则将所述对象标识发送至所述第二核心层,以供所述第二核心层基于所述对象标识反馈所述UI组件对象。
可选的,所述根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新,包括:
所述第二核心层通过解析所述第二更新信息,得到所述UI组件对象,所述执行函数的标识,及所述更新参数;
所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
可选的,在所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新之后,所述方法还包括:
所述第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值经过所述第一核心层转发所述第一业务层,以供所述第一业务层基于所述返回值判断是否完成对所述UI组件的更新。
可选的,所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新,包括:
通过预置的函数调用对象将所述更新参数的第一数据类型转换为所述执行函数所需的第二数据类型;
所述第二核心层基于所述第二数据类型的更新参数,通过所述函数调用对象调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
可选的,在所述第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值发送至所述第一核心层之前,所述方法还包括:
通过所述函数调用对象确定所述返回值的第三数据类型,以供所述第二核心层将所述返回值设置为所述第三数据类型。
可选的,所述第一更新信息还包括:第一代理执行函数;
所述根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新,包括:
在所述执行函数为所述第二业务层中所述UI组件对应的第二代理执行函数的情况下,所述第二核心层将所述第二代理执行函数封装为所述第一业务层中的第一代理执行函数;
当第二核心层调用所述第二代理执行函数时,基于所述更新参数,通过调用所述第一代理执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
本发明还提供一种用户交互界面UI组件的更新装置,应用于设置有基于混合开发模式所开发的应用程序的终端中,所述装置包括:
接收模块,用于通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;所述第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,所述UI组件对应执行函数的标识,及所述UI组件的更新参数;
第一封装模块,用于所述第一功能层将基于所述对象标识获取到的UI组件对象,所述执行函数的标识,及所述更新参数封装为所述第二功能层可识别的第二更新信息,并将所述第二更新信息发送至所述第二功能层;
更新模块,用于根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新。
可选的,所述第一功能层包括:第一业务层;所述接收模块,具体用于:
通过所述第一业务层接收服务器发送的所述第一更新信息。
可选的,所述第一功能层还包括:第一核心层;所述第二功能层包括:第二业务层和第二核心层;
所述第一封装模块,包括:
获取模块,用于所述第一业务层基于所述对象标识获取UI组件对象,并将所述UI组件对象、所述执行函数的标识,及所述更新参数发送至第一核心层;
第二封装模块,用于所述第一核心层将所述UI组件对象、所述执行函数的标识,及所述更新参数封装为所述第二核心层可识别的第二更新信息,并将所述第二更新信息发送至所述第二核心层。
可选的,所述第一业务层基于所述对象标识获取UI组件对象,包括:
所述第一业务层基于所述对象标识检测所述第一核心层是否缓存所述UI组件对象;
若所述第一核心层已缓存所述UI组件对象,则获取所述第一核心层中缓存的所述UI组件对象;
否则将所述对象标识发送至所述第二核心层,以供所述第二核心层基于所述对象标识反馈所述UI组件对象。
可选的,所述更新模块,具体用于:
所述第二核心层通过解析所述第二更新信息,得到所述UI组件对象,所述执行函数的标识,及所述更新参数;
所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
可选的,所述装置还包括:
返回模块,用于在所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新之后,第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值经过所述第一核心层转发所述第一业务层,以供所述第一业务层基于所述返回值判断是否完成对所述UI组件的更新。
可选的,所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新,包括:
通过预置的函数调用对象将所述更新参数的第一数据类型转换为所述执行函数所需的第二数据类型;
所述第二核心层基于所述第二数据类型的更新参数,通过所述函数调用对象调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
可选的,所述装置还包括:
确定模块,用于在所述第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值发送至所述第一核心层之前,通过所述函数调用对象确定所述返回值的第三数据类型,以供所述第二核心层将所述返回值设置为所述第三数据类型。
可选的,所述第一更新信息还包括:第一代理执行函数;所述更新模块,具体用于:
在所述执行函数为所述第二业务层中所述UI组件对应的第二代理执行函数的情况下,所述第二核心层将所述第二代理执行函数封装为所述第一业务层中的第一代理执行函数;
当第二核心层调用所述第二代理执行函数时,基于所述更新参数,通过调用所述第一代理执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
本发明还提供一种终端,所述终端包括处理器和存储器;
所述处理器用于执行存储器中存储的用户交互界面UI组件的更新程序,以实现上述的UI组件的更新方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的用户交互界面UI组件的更新方法的步骤。
采用上述技术方案,本发明至少具有下列优点:
本发明所述一种UI组件的更新方法、装置、终端及计算机可读存储介质,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
附图说明
图1为本发明第一实施例所述的UI组件的更新方法流程图;
图2为本发明第二实施例所述的UI组件的更新方法流程图;
图3为本发明第三实施例所述的UI组件的更新方法流程图;
图4为本发明第四实施例所述的UI组件的更新方法流程图;
图5为本发明第五实施例所述的UI组件的更新方法流程图;
图6为本发明第六实施例所述的UI组件的更新方法流程图;
图7为本发明第七实施例所述的UI组件的更新方法流程图;
图8为本发明第八实施例所述的UI组件的更新方法流程图;
图9为本发明第九实施例所述的UI组件的更新方法流程图;
图10为本发明第十实施例所述的UI组件的更新装置组成结构示意图;
图11为本发明第十一实施例所述的UI组件的更新装置组成结构示意图;
图12为本发明第十二实施例所述的UI组件的更新装置组成结构示意图;
图13为本发明第十三实施例所述的终端组成结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明实施例提供的UI组件的更新方法,应用于基于混合开发模式所开发的应用程序中,用于实现上述应用程序中基于不同脚本语言开发的功能层中UI组件的参数动态更新,以解决现有技术应用程序中UI组件的参数不能动态更新的问题。
本发明第一实施例,一种UI组件的更新方法,如图1所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S101,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S102,第一功能层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,步骤S102,包括:
第一功能层将基于对象标识获取到的第二功能层中的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
在应用程序中的第二功能层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一功能层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二功能层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S103,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S103,包括:
根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,对UI组件对象进行更新,包括但不限于:对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL(Uniform Resource Locator,统一资源定位符)。
本发明第一实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第二实施例,一种UI组件的更新方法,如图2所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S201,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层的情况下,步骤S201,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S202,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,步骤S202,包括:
第一业务层将基于对象标识获取到的第二功能层中的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
在应用程序中的第二功能层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二功能层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S203,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S203,包括:
根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,对UI组件对象进行更新,包括但不限于:对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
本发明第二实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第三实施例,一种UI组件的更新方法,如图3所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S301,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,步骤S301,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S302,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,步骤S302,包括:
第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S303,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S303,包括:
根据第二更新信息,第二核心层基于更新参数,通过调用执行函数对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,对UI组件对象进行更新,包括但不限于:对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
本发明第三实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第四实施例,一种UI组件的更新方法,如图4所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S401,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,步骤S401,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S402,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,步骤S402,包括:
第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S403,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S403,包括:
根据第二更新信息,第二核心层基于更新参数,通过调用执行函数对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,对UI组件对象进行更新,包括但不限于:对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
本发明第四实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第五实施例,一种UI组件的更新方法,如图5所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S501,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,步骤S501,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S502,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,步骤S502,包括:
第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S503,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S503,包括:
第二核心层通过解析第二更新信息,得到第二核心层可识别的UI组件对象,执行函数的标识,及更新参数;
第二核心层基于更新参数,通过调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
本发明第五实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第六实施例,一种UI组件的更新方法,如图6所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S601,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,步骤S601,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S602,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,步骤S602,包括:
第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S603,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S603,包括:
第二核心层通过解析第二更新信息,得到第二核心层可识别的UI组件对象、执行函数的标识,及更新参数;
第二核心层基于更新参数,通过调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
步骤S604,第二核心层将属性参数和/或执行逻辑参数更新状态对应的返回值经过第一核心层转发第一业务层,以供第一业务层基于返回值判断是否完成对UI组件的更新。
在本实施例中,更新状态包括以下状态之一:
更新完成和更新失败。
本发明第六实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第七实施例,一种UI组件的更新方法,如图7所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S701,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,步骤S701,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S702,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,步骤S702,包括:
第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S703,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S703,包括:
通过预置的函数调用对象将更新参数的第一数据类型转换为执行函数所需的第二数据类型;
第二核心层基于第二数据类型的更新参数,通过函数调用对象调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
可选的,步骤S703,包括:
通过预置的函数调用对象,基于该函数调用对象中预置的第一数据类型与第二数据类型的映射关系,将更新参数的第一数据类型转换为执行函数所需的第二数据类型;
第二核心层基于第二数据类型的更新参数,通过函数调用对象调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
例如:在第二脚本语言为苹果公司操作系统iOS原生系统语言Objective-C的情况下,通过NSInvocation基于NSInvocation中预置的第一数据类型整数类型与第二数据类型字符串类型的映射关系,将更新参数的第一数据类型整数类型转换为执行函数所需的第二数据类型字符串类型;
第二核心层基于第二数据类型的更新参数,通过NSInvocation调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
步骤S704,第二核心层将属性参数和/或执行逻辑参数更新状态对应的返回值经过第一核心层转发第一业务层,以供第一业务层基于返回值判断是否完成对UI组件的更新。
在本实施例中,更新状态包括以下状态之一:
更新完成和更新失败。
本发明第七实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第八实施例,一种UI组件的更新方法,如图8所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S801,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,步骤S801,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S802,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,步骤S802,包括:
第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S803,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S803,包括:
通过预置的函数调用对象将更新参数的第一数据类型转换为执行函数所需的第二数据类型;
第二核心层基于第二数据类型的更新参数,通过函数调用对象调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
可选的,步骤S803,包括:
通过预置的函数调用对象,基于该函数调用对象中预置的第一数据类型与第二数据类型的映射关系,将更新参数的第一数据类型转换为执行函数所需的第二数据类型;
第二核心层基于第二数据类型的更新参数,通过函数调用对象调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
例如:在第二脚本语言为苹果公司操作系统iOS原生系统语言Objective-C的情况下,通过NSInvocation基于NSInvocation中预置的第一数据类型整数类型与第二数据类型字符串类型的映射关系,将更新参数的第一数据类型整数类型转换为执行函数所需的第二数据类型字符串类型;
第二核心层基于第二数据类型的更新参数,通过NSInvocation调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
步骤S804,通过该函数调用对象确定第二核心层经过第一核心层转发第一业务层返回值的第三数据类型,以供第二核心层将返回值设置为第三数据类型。
例如:通过NSInvocation确定第二核心层经过第一核心层转发第一业务层返回值的第三数据类型,以供第二核心层将返回值设置为第三数据类型。
通过预置的函数调用对象实现了不同脚本语言开发的业务层之间传递的参数和返回值类型的自动转换。
步骤S805,第二核心层将属性参数和/或执行逻辑参数更新状态对应的返回值经过第一核心层转发第一业务层,以供第一业务层基于返回值判断是否完成对UI组件的更新。
在本实施例中,更新状态包括以下状态之一:
更新完成和更新失败。
本发明第八实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第九实施例,一种UI组件的更新方法,如图9所示,应用于基于混合开发模式所开发的应用程序中,该方法包括以下具体步骤:
步骤S901,通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,步骤S901,包括:
通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
步骤S902,第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,步骤S902,包括:
第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
步骤S903,根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,步骤S903,包括:
在执行函数为第二业务层中UI组件对应的第二代理执行函数的情况下,第二核心层将第二代理执行函数封装为第一业务层中的第一代理执行函数;
当第二核心层调用第二代理执行函数时,基于更新参数,通过调用第一代理执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
本发明第九实施例所述的UI组件的更新方法,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明实施例提供的UI组件的更新装置,应用于设置有基于混合开发模式所开发的应用程序的终端中,用于实现上述应用程序中基于不同脚本语言开发的功能层中UI组件的参数动态更新,以解决现有技术应用程序中UI组件的参数不能动态更新的问题。
本发明第十实施例,一种UI组件的更新装置,如图10所示,应用于设置有基于混合开发模式所开发的应用程序的终端中,该装置包括以下组成部分:
接收模块100,用于通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
第一封装模块200,用于第一功能层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,第一封装模块200,具体用于:
第一功能层将基于对象标识获取到的第二功能层中的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
在应用程序中的第二功能层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一功能层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二功能层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
更新模块300,用于根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,更新模块300,具体用于:
根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,对UI组件对象进行更新,包括但不限于:对UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL(Uniform Resource Locator,统一资源定位符)。
本发明第十实施例所述的UI组件的更新装置,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第十一实施例,一种UI组件的更新装置,如图11所示,应用于设置有基于混合开发模式所开发的应用程序的终端中,该装置包括以下组成部分:
接收模块100,用于通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,接收模块100,具体用于:
基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,通过第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
第一封装模块200,用于第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,第一封装模块200,包括:
获取模块201,用于第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;
第二封装模块202,用于第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
更新模块300,用于根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,更新模块300,具体用于:
通过预置的函数调用对象将更新参数的第一数据类型转换为执行函数所需的第二数据类型;
第二核心层基于第二数据类型的更新参数,通过函数调用对象调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
可选的,更新模块300,具体用于:
通过预置的函数调用对象,基于该函数调用对象中预置的第一数据类型与第二数据类型的映射关系,将更新参数的第一数据类型转换为执行函数所需的第二数据类型;
第二核心层基于第二数据类型的更新参数,通过函数调用对象调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
例如:在第二脚本语言为苹果公司操作系统iOS原生系统语言Objective-C的情况下,通过NSInvocation基于NSInvocation中预置的第一数据类型整数类型与第二数据类型字符串类型的映射关系,将更新参数的第一数据类型整数类型转换为执行函数所需的第二数据类型字符串类型;
第二核心层基于第二数据类型的更新参数,通过NSInvocation调用执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
确定模块400,用于通过该函数调用对象确定第二核心层经过第一核心层转发第一业务层返回值的第三数据类型,以供第二核心层将返回值设置为第三数据类型。
例如:确定模块400,用于通过NSInvocation确定第二核心层经过第一核心层转发第一业务层返回值的第三数据类型,以供第二核心层将返回值设置为第三数据类型。
通过预置的函数调用对象实现了不同脚本语言开发的业务层之间传递的参数和返回值类型的自动转换。
返回模块500,用于第二核心层将属性参数和/或执行逻辑参数更新状态对应的返回值经过第一核心层转发第一业务层,以供第一业务层基于返回值判断是否完成对UI组件的更新。
在本实施例中,更新状态包括以下状态之一:
更新完成和更新失败。
本发明第十一实施例所述的UI组件的更新装置,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第十二实施例,一种UI组件的更新装置,如图12所示,应用于设置有基于混合开发模式所开发的应用程序的终端中,该装置包括以下组成部分:
接收模块100,用于通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
可选的,接收模块100,具体用于:
基于第一脚本语言开发的第一功能层包括第一业务层和第一核心层的情况下,通过基于第一脚本语言开发的第一业务层接收服务器发送的第一更新信息;第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,该UI组件对应执行函数的标识,及该UI组件的更新参数。
在本实施例中,对第一脚本语言和第二脚本语言不做具体限定,可以是第一脚本语言为脚本语言Javascript,第二脚本语言为原生系统语言;也可以是第一脚本语言为原生系统语言,第二脚本语言为脚本语言Javascript。
在本实施例中,对UI组件不做具体限定,可以是按钮组件,也可以是选项组件,也可以是静态图像组件,也可以是视频播放组件,也可以是音频播放组件。
例如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于苹果公司操作系统iOS原生系统语言Objective-C开发的功能组件。
又如:第一功能组件为基于Javascript脚本语言开发的功能组件,第二功能组件为基于安卓(Android)操作系统原生系统语言开发的功能组件。
第一封装模块200,用于第一业务层将基于对象标识获取到的UI组件对象,执行函数的标识,及更新参数封装为第二功能层可识别的第二更新信息,并将第二更新信息发送至第二功能层。
可选的,基于第二脚本语言开发的第二功能层包括第二业务层和第二核心层的情况下,第一封装模块200,包括:
获取模块201,用于第一业务层基于对象标识获取UI组件对象,并将UI组件对象、执行函数的标识,及更新参数发送至第一核心层;
第二封装模块202,用于第一核心层将UI组件对象、执行函数的标识,及更新参数封装为第二核心层可识别的第二更新信息,并将第二更新信息发送至第二核心层。
可选的,第一业务层基于对象标识获取UI组件对象的方式,包括但不限于:
第一业务层基于对象标识检测第一核心层是否缓存UI组件对象;
若第一核心层已缓存UI组件对象,则获取第一核心层中缓存的UI组件对象;
否则将对象标识发送至第二核心层,以供第二核心层基于对象标识反馈UI组件对象。
在第一业务层已对该UI组件对象执行过更新的情况下,则在第一核心层中缓存有该UI组件对象,以便再次对该UI组件对象进行更新时,提高获取该UI组件对象的速度和效率。
在应用程序中的第二核心层不能通过服务器下发的更新参数对UI组件的属性参数和/或执行逻辑参数进行更新时,通过应用程序中的第一业务层将接收到的服务器下发的第一更新信息封装为第二功能层可识别的第二更新信息,以供第二核心层基于第二更新信息对UI组件的属性参数和/或执行逻辑参数进行更新,实现了应用程序中任一UI组件的属性参数和/或执行逻辑参数动态更新,避免了发布包含UI组件的属性更新参数和/或执行逻辑更新参数新的应用程序安装包的弊端。
更新模块300,用于根据第二更新信息,第二功能层基于更新参数,通过调用执行函数对UI组件对象进行更新。
可选的,更新模块300,具体用于:
在执行函数为第二业务层中UI组件对应的第二代理执行函数的情况下,第二核心层将第二代理执行函数封装为第一业务层中的第一代理执行函数;
当第二核心层调用第二代理执行函数时,基于更新参数,通过调用第一代理执行函数对第二业务层中的UI组件对象的属性参数和/或执行逻辑参数进行更新。
在本实施例中,UI组件对象的属性参数包括以下参数中的一个或多个:
UI组件的布局位置参数,UI组件的尺寸参数,UI组件的颜色参数,及UI组件的文字符号属性参数等。
在本实施例中,UI组件对象的执行逻辑参数,包括但不限于:
当UI组件被触发时,该UI组件对应的执行逻辑参数。
例如,当UI组件被用户点击触发时,该UI组件对应的页面跳转执行逻辑参数URL。
本发明第十二实施例所述的UI组件的更新装置,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第十三实施例,一种终端,如图13所示,包括以下组成部分:
处理器501和存储器502。在本发明的一些实施例中,处理器501和存储器502可通过总线或者其它方式连接。
处理器501可以是通用处理器,例如中央处理器(Central Processing Unit,CPU),还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(英文:Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器502用于存储处理器501的可执行指令;
存储器502,用于存储程序代码,并将该程序代码传输给处理器501。存储器502可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器502也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器502还可以包括上述种类的存储器的组合。
其中,处理器501用于调用存储器502存储的程序代码管理代码,执行本发明第一实施例至本发明第九实施例中任一实施例中部分或全部步骤。
本发明第十三实施例所述的终端,实现了应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
本发明第十四实施例,一种计算机可读存储介质。
计算机存储介质可以是RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域已知的任何其他形式的存储介质。
计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现本发明第一实施例至本发明第九实施例中任一实施例中部分或全部步骤。
本发明第十四实施例所述的计算机可读存储介质,存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,能够实现应用程序中任一UI组件的动态更新,有效提高了UI组件的更新效率,极大提高了UI组件的更新便利性,改善了应用程序中UI组件的用户体验。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (14)
1.一种用户交互界面UI组件的更新方法,其特征在于,应用于基于混合开发模式所开发的应用程序中,所述方法包括:
通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;所述第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,所述UI组件对应执行函数的标识,及所述UI组件的更新参数;
所述第一功能层将基于所述对象标识获取到的UI组件对象,所述执行函数的标识,及所述更新参数封装为所述第二功能层可识别的第二更新信息,并将所述第二更新信息发送至所述第二功能层;
根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新;
所述第一功能层包括:第一业务层;
所述通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息,包括:
通过所述第一业务层接收服务器发送的所述第一更新信息;
所述第一功能层还包括:第一核心层;所述第二功能层包括:第二业务层和第二核心层;
所述第一功能层将基于所述对象标识获取到的UI组件对象,所述执行函数的标识,及所述更新参数封装为所述第二功能层可识别的第二更新信息,并将所述第二更新信息发送至所述第二功能层,包括:
所述第一业务层基于所述对象标识获取UI组件对象,并将所述UI组件对象、所述执行函数的标识,及所述更新参数发送至第一核心层;
所述第一核心层将所述UI组件对象、所述执行函数的标识,及所述更新参数封装为所述第二核心层可识别的第二更新信息,并将所述第二更新信息发送至所述第二核心层;
所述第一业务层基于所述对象标识获取UI组件对象,包括:
所述第一业务层基于所述对象标识检测所述第一核心层是否缓存所述UI组件对象;
若所述第一核心层已缓存所述UI组件对象,则获取所述第一核心层中缓存的所述UI组件对象;
否则将所述对象标识发送至所述第二核心层,以供所述第二核心层基于所述对象标识反馈所述UI组件对象。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新,包括:
所述第二核心层通过解析所述第二更新信息,得到所述UI组件对象,所述执行函数的标识,及所述更新参数;
所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
3.根据权利要求2所述的方法,其特征在于,在所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新之后,所述方法还包括:
所述第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值经过所述第一核心层转发所述第一业务层,以供所述第一业务层基于所述返回值判断是否完成对所述UI组件的更新。
4.根据权利要求3所述的方法,其特征在于,所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新,包括:
通过预置的函数调用对象将所述更新参数的第一数据类型转换为所述执行函数所需的第二数据类型;
所述第二核心层基于所述第二数据类型的更新参数,通过所述函数调用对象调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
5.根据权利要求4所述的方法,其特征在于,在所述第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值发送至所述第一核心层之前,所述方法还包括:
通过所述函数调用对象确定所述返回值的第三数据类型,以供所述第二核心层将所述返回值设置为所述第三数据类型。
6.根据权利要求1所述的方法,其特征在于,所述第一更新信息还包括:第一代理执行函数;
所述根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新,包括:
在所述执行函数为所述第二业务层中所述UI组件对应的第二代理执行函数的情况下,所述第二核心层将所述第二代理执行函数映射为所述第一业务层中的第一代理执行函数;
当第二核心层调用所述第二代理执行函数时,基于所述更新参数,通过调用所述第一代理执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
7.一种用户交互界面UI组件的更新装置,其特征在于,应用于设置有基于混合开发模式所开发的应用程序的终端中,所述装置包括:
接收模块,用于通过基于第一脚本语言开发的第一功能层接收服务器发送的第一更新信息;所述第一更新信息包括:基于第二脚本语言开发的第二功能层中UI组件的对象标识,所述UI组件对应执行函数的标识,及所述UI组件的更新参数;
第一封装模块,用于所述第一功能层将基于所述对象标识获取到的UI组件对象,所述执行函数的标识,及所述更新参数封装为所述第二功能层可识别的第二更新信息,并将所述第二更新信息发送至所述第二功能层;
更新模块,用于根据所述第二更新信息,所述第二功能层基于所述更新参数,通过调用所述执行函数对所述UI组件对象进行更新;
所述第一功能层包括:第一业务层;所述接收模块,具体用于:
通过所述第一业务层接收服务器发送的所述第一更新信息;
所述第一功能层还包括:第一核心层;所述第二功能层包括:第二业务层和第二核心层;
所述第一封装模块,包括:
获取模块,用于所述第一业务层基于所述对象标识获取UI组件对象,并将所述UI组件对象、所述执行函数的标识,及所述更新参数发送至第一核心层;
第二封装模块,用于所述第一核心层将所述UI组件对象、所述执行函数的标识,及所述更新参数封装为所述第二核心层可识别的第二更新信息,并将所述第二更新信息发送至所述第二核心层;
所述第一业务层基于所述对象标识获取UI组件对象,包括:
所述第一业务层基于所述对象标识检测所述第一核心层是否缓存所述UI组件对象;
若所述第一核心层已缓存所述UI组件对象,则获取所述第一核心层中缓存的所述UI组件对象;
否则将所述对象标识发送至所述第二核心层,以供所述第二核心层基于所述对象标识反馈所述UI组件对象。
8.根据权利要求7所述的装置,其特征在于,所述更新模块,具体用于:
所述第二核心层通过解析所述第二更新信息,得到所述UI组件对象,所述执行函数的标识,及所述更新参数;
所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
返回模块,用于在所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新之后,第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值经过所述第一核心层转发所述第一业务层,以供所述第一业务层基于所述返回值判断是否完成对所述UI组件的更新。
10.根据权利要求9所述的装置,其特征在于,所述第二核心层基于所述更新参数,通过调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新,包括:
通过预置的函数调用对象将所述更新参数的第一数据类型转换为所述执行函数所需的第二数据类型;
所述第二核心层基于所述第二数据类型的更新参数,通过所述函数调用对象调用所述执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
确定模块,用于在所述第二核心层将所述属性参数和/或所述执行逻辑参数更新状态对应的返回值发送至所述第一核心层之前,通过所述函数调用对象确定所述返回值的第三数据类型,以供所述第二核心层将所述返回值设置为所述第三数据类型。
12.根据权利要求7所述的装置,其特征在于,所述第一更新信息还包括:第一代理执行函数;所述更新模块,具体用于:
在所述执行函数为所述第二业务层中所述UI组件对应的第二代理执行函数的情况下,所述第二核心层将所述第二代理执行函数映射为所述第一业务层中的第一代理执行函数;
当第二核心层调用所述第二代理执行函数时,基于所述更新参数,通过调用所述第一代理执行函数对所述第二业务层中的所述UI组件对象的属性参数和/或执行逻辑参数进行更新。
13.一种终端,其特征在于,所述终端包括处理器和存储器;
所述处理器用于执行存储器中存储的用户交互界面UI组件的更新程序,以实现根据权利要求1~6中任一项所述的UI组件的更新方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现根据权利要求1~6中任一项所述的用户交互界面UI组件的更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810503376.2A CN108874418B (zh) | 2018-05-23 | 2018-05-23 | Ui组件的更新方法、装置、终端及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810503376.2A CN108874418B (zh) | 2018-05-23 | 2018-05-23 | Ui组件的更新方法、装置、终端及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108874418A CN108874418A (zh) | 2018-11-23 |
CN108874418B true CN108874418B (zh) | 2022-04-05 |
Family
ID=64332951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810503376.2A Active CN108874418B (zh) | 2018-05-23 | 2018-05-23 | Ui组件的更新方法、装置、终端及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108874418B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109660602B (zh) * | 2018-11-28 | 2022-08-09 | 天津字节跳动科技有限公司 | 数据增量传输方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174217A (zh) * | 2007-11-22 | 2008-05-07 | 上海交通大学 | Java程序可动态更新化实现方法 |
CN101751266A (zh) * | 2008-12-02 | 2010-06-23 | 爱思开电讯投资(中国)有限公司 | 用于更新gui组件的方法和装置 |
EP2688010A1 (fr) * | 2012-07-20 | 2014-01-22 | Oberthur Technologies | Mise à jour d'un système d'exploitation pour elément sécurisé |
CN103559063A (zh) * | 2013-11-14 | 2014-02-05 | 金蝶软件(中国)有限公司 | 应用程序的更新方法、系统及应用程序系统和参数据配置系统 |
CN104111855A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于Lua的iOS客户端功能动态更新的方法 |
CN104281478A (zh) * | 2014-10-28 | 2015-01-14 | 小米科技有限责任公司 | 更新应用程序的方法及装置 |
CN105354014A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染展示方法及装置 |
CN105589701A (zh) * | 2014-10-21 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 一种客户端应用程序局部更新方法及装置 |
CN106850976A (zh) * | 2017-01-13 | 2017-06-13 | 努比亚技术有限公司 | 应用更新方法及终端 |
CN107391169A (zh) * | 2017-06-09 | 2017-11-24 | 口碑控股有限公司 | 安卓页面的动态更新方法和装置 |
-
2018
- 2018-05-23 CN CN201810503376.2A patent/CN108874418B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174217A (zh) * | 2007-11-22 | 2008-05-07 | 上海交通大学 | Java程序可动态更新化实现方法 |
CN101751266A (zh) * | 2008-12-02 | 2010-06-23 | 爱思开电讯投资(中国)有限公司 | 用于更新gui组件的方法和装置 |
EP2688010A1 (fr) * | 2012-07-20 | 2014-01-22 | Oberthur Technologies | Mise à jour d'un système d'exploitation pour elément sécurisé |
CN103559063A (zh) * | 2013-11-14 | 2014-02-05 | 金蝶软件(中国)有限公司 | 应用程序的更新方法、系统及应用程序系统和参数据配置系统 |
CN104111855A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于Lua的iOS客户端功能动态更新的方法 |
CN105354014A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染展示方法及装置 |
CN105589701A (zh) * | 2014-10-21 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 一种客户端应用程序局部更新方法及装置 |
CN104281478A (zh) * | 2014-10-28 | 2015-01-14 | 小米科技有限责任公司 | 更新应用程序的方法及装置 |
CN106850976A (zh) * | 2017-01-13 | 2017-06-13 | 努比亚技术有限公司 | 应用更新方法及终端 |
CN107391169A (zh) * | 2017-06-09 | 2017-11-24 | 口碑控股有限公司 | 安卓页面的动态更新方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108874418A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106569794B (zh) | 应用程序开发装置 | |
CN110688232B (zh) | 应用程序调用方法、终端设备及计算机可读存储介质 | |
CN110990105B (zh) | 界面显示方法、装置、电子设备及存储介质 | |
CN106547580B (zh) | 挂钩函数的方法、装置、移动终端及存储介质 | |
CN104301443A (zh) | 一种在web页面上调用端能力接口的方法和系统 | |
EP2608585A1 (en) | Method, device and system for triggering terminal operation | |
CN109240697B (zh) | 调用处理方法及装置、存储介质 | |
EP4210053A1 (en) | Application program control method and apparatus, electronic device, and storage medium | |
CN108664294B (zh) | 呈现蒙版图的方法和装置以及电子设备和存储介质 | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN106605231B (zh) | 帐户控制 | |
JP7106001B2 (ja) | サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム | |
WO2011060735A1 (zh) | 微件Widget调用的方法、装置和系统 | |
CN112100561A (zh) | 用于网页调用本地功能的方法、电子设备和存储介质 | |
CN108845800B (zh) | 一种组件扩展功能的实现方法、装置、设备及存储介质 | |
CN111459685A (zh) | 页面端与原生端的通信方法、装置、设备及可读介质 | |
CN110727469B (zh) | 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质 | |
CN110780871A (zh) | 一种负一屏加载方法、装置、终端及计算机可读存储介质 | |
CN110134410B (zh) | 冷启动用户的个性化信息关联方法、装置及存储介质 | |
CN108874418B (zh) | Ui组件的更新方法、装置、终端及计算机可读存储介质 | |
CN113645308B (zh) | 移动终端tcp通信、装置、设备及存储介质 | |
CN108804120B (zh) | 一种页面构建方法、装置、设备及存储介质 | |
CN110928706A (zh) | 小程序交互方法、装置、电子设备及存储介质 | |
CN108920218B (zh) | 一种反射调用方法、装置、终端及计算机可读存储介质 | |
CN108804177A (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 |