CN115086690A - 一种界面控制信息分发方法及相关设备 - Google Patents

一种界面控制信息分发方法及相关设备 Download PDF

Info

Publication number
CN115086690A
CN115086690A CN202110279927.3A CN202110279927A CN115086690A CN 115086690 A CN115086690 A CN 115086690A CN 202110279927 A CN202110279927 A CN 202110279927A CN 115086690 A CN115086690 A CN 115086690A
Authority
CN
China
Prior art keywords
component
common control
control
container
public
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
CN202110279927.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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN202110279927.3A priority Critical patent/CN115086690A/zh
Publication of CN115086690A publication Critical patent/CN115086690A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/74Browsing; Visualisation therefor
    • 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/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种界面控制信息分发方法及相关设备,属于计算机技术领域,实现将控制信息进行分发时,面对不同类型的控制信息采用对应的公共控制组件,避免了在不同平台均进行一次组件设置的问题,提高了分发效率。所述方法包括:根据预设界面控制信息种类生成公共控制容器组件;将对应所述预设界面控制信息种类的预设控制组件导入所述公共控制容器组件生成公共控制组件;将所述公共控制组件在所述公共控制组件运行的平台进行注册,得到所述公共控制组件的身份信息;定义所述公共控制组件与所述公共控制组件运行的平台之间的代理关系;根据所述公共控制组件的身份信息与所述代理关系,控制所述公共控制组件运行的平台获取所述公共控制组件。

Description

一种界面控制信息分发方法及相关设备
技术领域
本发明涉及计算机技术领域,尤其是涉及一种界面控制信息分发方法及相关设备。
背景技术
随着直播行业的发展,直播行业越来越活跃,而在直播过程中经常需要对直播界面进行控制,而对直播界面进行控制的界面控制信息需要从服务器分发至客户端平台。
而目前实现界面控制信息需要从服务器分发至客户端平台时,面对不同的客户端平台每个客户端平台每次都需要调用对应界面控制信息的接口组件才能进行消息的分发,由于控制信息的种类过多,则需要调用的对应接口组件过多,接口组件数量过多影响了界面控制信息的分发效率,在进行界面控制信息分发开发时是不小的开发和测试负担,导致开发界面控制信息种类的接口的工作量过大。
发明内容
本发明的目的在于提供一种界面控制信息分发方法,缓解了现有技术中在进行界面控制信息分发时,面对不同种类的界面控制信息需要不同的接口组件,影响界面控制信息的分发效率的技术问题。
第一方面,本发明提供一种界面控制信息分发方法,包括:
根据预设界面控制信息种类生成公共控制容器组件;
将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;
将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;
定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;
根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。
可选的,上述根据预设界面控制信息种类生成公共控制容器组件的步骤,包括:
基于上述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件,其中,上述基本类数据为遵守NSObject协议的ActivityInterface基本类数据,上述ActivityInterface基本类数据具有单一性。
可选的,上述基于上述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件的步骤,包括:
根据上述预设界面控制信息种类设置容器管理组件参数;
根据上述容器管理组件参数增加容器管理组件;
根据上述容器管理组件生成公共控制容器组件。
可选的,上述将上述公共控制组件在上述公共控制组件运行的平台进行注册的步骤,包括:
判断上述公共控制组件在上述公共控制组件需要运行的平台进行注册的线程是否为主线程;
若上述公共控制组件在上述公共控制组件需要运行的平台进行注册的线程为主线程,则判断上述公共控制组件是否遵守ActivityComponentProtocol协议,其中,上述ActivityComponentProtocol协议的编写过程为定义一个头文件,在上述头文件中里面添加预设方法的过程,通过定义一个头文件,在上述头文件中里面添加预设方法,使得上述ActivityComponentProtocol协议遵守预设方法,进而实现对上述公共控制组件进行注册,更加灵活,能够根据场景实际需要改变预设方法,进而改变上述ActivityComponentProtocol协议;
若上述公共控制组件遵守ActivityComponentProtocol协议,则对上述公共控制组件进行注册。
可选的,在上述定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系之前,还包括:
根据上述公共控制组件构建上述公共控制组件模型;
根据调用函数:
ActivityContainer*container=[Manager.containerHandlercontainerWithType:componentType]
获取上述公共控制组件对应的上述公共控制容器组件,其中,ActivityContainer*container为调用功能语句,componentType为调用条件语句;
将上述公共控制组件模型与上述公共控制容器组件进行绑定。
可选的,所定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系的步骤,包括:
确定上述容器管理组件的属性;
根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系;
将根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系作为上述公共控制组件与上述公共控制组件运行的平台之间的代理关系。
可选的,在上述根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件的步骤之前,还包括:
判断上述容器管理组件的属性设置的上述容器管理组件与上述公共控制组件运行的平台之间的代理关系是否遵循ActivityContainerDelegate代理协议,其中,上述ActivityContainerDelegate代理协议的编写过程为创建一个头文件,在所述头文件中写入代理方法的过程,上述ActivityContainerDelegate代理协议为确保所述容器管理组件与所述公共控制组件运行的平台之间符合预设代理规则的代理协议,上述ActivityContainerDelegate代理协议能够灵活设置所述公共控制组件运行的平台之间符合预设代理规则,根据场景和用户实际需求改变所述公共控制组件运行的平台之间符合预设代理规则,进而修改上述ActivityContainerDelegate代理协议;
若上述容器管理组件的属性设置的上述容器管理组件与上述公共控制组件运行的平台之间的代理关系遵循ActivityContainerDelegate代理协议,则将上述容器管理组件的属性设置的上述容器管理组件与上述公共控制组件运行的平台之间的代理关系进行保存。
第二方面,本发明提供了一种界面控制信息分发装置,包括:
生成模块,用于根据预设界面控制信息种类生成公共控制容器组件;
导入模块,用于将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;
注册模块,用于将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;
定义模块,用于定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;
获取模块,用于根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。
第三方面,本发明提供了一种电子设备,包括:储存器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,其特征在于,上述处理器用于执行存储器中存储的计算机程序时实现上述的界面控制信息分发方法的步骤。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:上述计算机程序被处理器执行时实现上述的界面控制信息分发的步骤。
本发明提供的一种界面控制信息分发方法及相关设备,通过根据预设界面控制信息种类生成公共控制容器组件;将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。根据预设界面控制信息种类生成对应所有平台的公共控制组件,通过上述公共控制组件将界面控制信息分发到各个平台,提高了界面控制信息的分发效率,在进行界面控制信息分发开发时减小了开发和测试负担,进而减小了开发界面控制信息种类的接口的工作量。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种界面控制信息分发方法流程图;
图2为本发明实施例提供的一种界面控制信息分发装置的实施例示意图;
图3为本申请实施例提供的一种电子设备的实施例示意图;
图4为本申请实施例提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,本发明提供一种界面控制信息分发方法,包括:
101、根据预设界面控制信息种类生成公共控制容器组件;
示例性的,基于上述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件,其中,上述基本类数据为遵守NSObject协议的ActivityInterface基本类数据,上述ActivityInterface基本类数据具有单一性;避免了在生成上述公共控制组件的身份信息时出现错乱,导致运行发生意外,控制信息分发出现错误。
根据上述预设界面控制信息种类设置容器管理组件参数;根据上述容器管理组件参数增加容器管理组件;根据上述容器管理组件生成公共控制容器组件,其中,ActivityInterface基本类数据为预设的基本类数据,具体为:DYActivityInterface;
基于上述预设界面控制信息种类与预设的基本类数据生成初始公共控制容器组件;
采用功能语句:
+(BOOL)playSVGA
根据上述预设界面控制信息种类设置上述容器管理组件参数;
在初始公共控制容器组件的.m文件中根据上述容器管理组件参数添加容器管理组件;
将添加上述容器管理组件的上述初始公共控制容器组件作为上述公共控制容器组件,将上述容器管理组件与上述初始公共控制容器组件作为整体,减少了不必要的交互过程,避免了多次调用的过程,只需要一次调用即能得到上述公共控制容器组件。
在一种可能的实施方式中,上述基于上述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件的步骤,包括:
根据上述预设界面控制信息种类设置容器管理组件参数;
根据上述容器管理组件参数增加容器管理组件;
根据上述容器管理组件生成公共控制容器组件。
示例性的,根据上述预设界面控制信息种类设置上述容器管理组件参数;
在初始公共控制容器组件的.m文件中根据上述容器管理组件参数添加容器管理组件;
将添加上述容器管理组件的上述初始公共控制容器组件作为上述公共控制容器组件,上述容器管理组件添加在上述初始公共控制容器组件中便于根据上述容器管理组件与上述公共控制组件运行的平台之间的代理关系获取上述公共控制容器组件,上述公共控制容器组件结合不同预设组件生成上述公共控制组件,避免了根据预设组件获取上述公共控制组件产生过多交互的过程。
102、将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;
示例性的,构建预设控制组件的模型以替换上述预设控制组件:
DYActivityComponentModel*componentModel=[DYActivityComponentModelnew];
其中,DYActivityComponentModel为构建功能语句,componentModel为模型语句,DYActivityComponentModel new为用以替换上述预设控制组件的预设控制组件的模型语句;
通过函数:
DYActivityContainer*container=[Manager.containerHandlercontainerWithType:componentType];
获取上述预设控制组件模型对应的上述公共控制容器组件,其中,DYActivityContainer为容器接口的功能语句,container为接口,Manager.containerHandler containerWithType为查找语句,componentType为查找条件语句;
将上述预设控制组件模型与上述公共控制容器组件进行绑定,上述绑定方法为:
Manager.componentIdMapper[componentId]=componentModel;
其中,Manager为管理者语句,componentIdMapper[componentId]为绑定功能语句,componentModel为模型语句;
将绑定上述预设控制组件模型的上述公共控制容器组件作为公共控制组件。
上述公共控制容器组件可以被所有平台调用,而将上述预设控制组件模型与上述公共控制容器组件进行绑定生成公共控制组件,便于所有平台的获取对应的公共控制组件,提高界面控制信息的分发效率。
103、将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;
示例性的,将上述公共控制组件在上述公共控制组件运行的平台进行注册的过程为注册上述预设控制组件和注册上述公共控制容器组件;
@param component
为上述公共控制组件注册语句;
注册上述预设控制组件和注册上述公共控制容器组件的方法为:
(void)registerComponent:(id<DYActivityComponentProtocol>)component;
其中,registerComponent为注册上述公共控制容器组件的功能语句,id<DYActivityComponentProtocol>)component为注册上述预设控制组件的功能语句。
在一种可能的实施方式中,上述将上述公共控制组件在上述公共控制组件运行的平台进行注册的步骤,包括:
判断上述公共控制组件在上述公共控制组件需要运行的平台进行注册的线程是否为主线程;
若上述公共控制组件在上述公共控制组件需要运行的平台进行注册的线程为主线程,则判断上述公共控制组件是否遵守ActivityComponentProtocol协议,其中,上述ActivityComponentProtocol协议的编写过程为定义一个头文件,在上述头文件中里面添加预设组件规则的过程,用于实现预设组件的添加,通过定义一个头文件,在上述头文件中里面添加预设方法,使得上述ActivityComponentProtocol协议遵守预设方法,进而实现对上述公共控制组件进行注册,更加灵活,能够根据场景实际需要改变预设方法,进而改变上述ActivityComponentProtocol协议;
若上述公共控制组件遵守ActivityComponentProtocol协议,则对上述公共控制组件进行注册。
示例性的,对上述公共控制组件进行注册的过程采用:
[component respondsToSelector:@selector(componentInfoReturned:)]
其中,respondsToSelector为注册语句,componentInfoReturned为上述公共控制组件的语句;
对上述公共控制组件进行注册获取上述公共控制组件的身份信息与上述公共控制组件的基础信息;
根据上述公共控制组件的身份信息判断上述公共控制组件是否重复注册,采用:
if([Manager.componentIdMapper objectForKey:componentId]){
return;
}
其中,componentIdMapper objectForKey为查找语句,componentId为查找条件语句;
若上述公共控制组件已经注册,则不再继续进行注册,避免了上述公共控制组件多次注册生成多个身份信息,在调用上述公共控制组件时发生混乱,控制信息分发错误。
注册上述公共控制组件得到上述公共控制组件的身份信息,便于根据上述控制信息的种类获取对应的上述公共控制组件。
在一种可能的实施方式中,在上述定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系之前,还包括:
根据上述公共控制组件构建上述公共控制组件模型;
根据调用函数:
ActivityContainer*container=[Manager.containerHandlercontainerWithType:componentType]
获取上述公共控制组件对应的上述公共控制容器组件,其中,ActivityContainer*container为调用功能语句,componentType为调用条件语句;
将上述公共控制组件模型与上述公共控制容器组件进行绑定。
示例性的,当需要进行消息的分发的时候,就需要获取公共控制组件模型,即,获取与上述公共控制组件模型绑定的上述公共控制容器组件,采用:
DYActivityComponentModel*componentModel=Manager.componentIdMapper[componentId];
其中,componentModel为获取公共控制组件模型的功能语句,Manager.componentIdMapper[componentId]为根据上述公共控制组件的身份信息进行获取操作的功能语句,componentId为根据上述公共控制组件的身份信息,DYActivityComponentModel为上述公共控制组件模型;
通过组件上述公共控制组件的身份信息完成对组件信息的分发,进而可以实现通过代理传值。
104、定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;
示例性的,定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系的过程为:
确定上述容器管理组件的属性;根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系;将根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系作为上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;
示例性的,为上述容器管理组件设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系的方法为:
Figure BDA0002977769990000111
Figure BDA0002977769990000121
其中,setActivityContainerDelegate为设置代理关系的功能语句,id<DYActivityContainerDelegate>)delegate为代理关系参数,Delegate为需要设置的代理关系语句,DYActivityContainerDelegate为预设的代理关系协议,Manager.containerDelegate=delegate为将上述代理关系进行保存的功能语句,其中,上述ActivityContainerDelegate代理协议的编写过程为创建一个头文件,在所述头文件中写入代理规则的过程,上述ActivityContainerDelegate代理协议为确保所述容器管理组件与所述公共控制组件运行的平台之间符合预设代理规则的代理协议,上述ActivityContainerDelegate代理协议能够灵活设置所述公共控制组件运行的平台之间符合预设代理规则,根据场景和用户实际需求改变所述公共控制组件运行的平台之间符合预设代理规则,进而修改上述ActivityContainerDelegate代理协议;
if([delegateconformsToProtocol:@protocol(DYActivityContainerDelegate)]){为判断设置的上述代理关系是否遵守预设的代理关系协议的判断语句;
将上述公共控制组件与上述公共控制组件运行的平台之间的代理关系在上述公共控制组件进行保存,实现定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系的过程。
105、根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。
示例性的,上述公共控制组件与上述公共控制组件运行的平台之间的代理关系为上述公共控制组件与上述公共控制组件运行的平台的控制器之间的代理关系;
将上述公共控制组件分发至上述公共控制组件运行的平台的方法为:
+(void)addCommonTipsWithDic:(NSDictionary*)params
其中,addCommonTipsWithDic为分发语句,(NSDictionary*)params为分发条件语句;
示例性的,分发过程为:
Figure BDA0002977769990000131
其中,addCommonTipsWithDic为分发方法协议;
self.delegate为上述公共控制组件运行的平台的控制器;
if([self.delegaterespondsToSelector:@selector(addCommonTipsWithDic:)]){[self.delegate addCommonTipsWithDic:params];}为判断上述公共控制组件运行的平台的控制器是否遵守addCommonTipsWithDic协议的判断语句,其中,所述addCommonTipsWithDic协议为系统协议,用于增加常用的带有词典文件格式的提示点,上述addCommonTipsWithDic协议通过所述提示点设置上述公共控制组件的提示点,使得上述控制器通过上述提示点调用上述公共控制组件;上述公共控制组件运行的平台获取上述公共控制组件时,即控制上述公共控制组件运行的平台的控制器的代理关系为上述公共控制组件与上述公共控制组件运行的平台之间的代理关系。
通过根据预设界面控制信息种类生成公共控制容器组件;将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。根据预设界面控制信息种类生成对应所有平台的公共控制组件,通过上述公共控制组件将界面控制信息分发到各个平台,提高了界面控制信息的分发效率,在进行界面控制信息分发开发时减小了开发和测试负担,进而减小了开发界面控制信息种类的接口的工作量。
在一种可能的实施方式中,上述根据预设界面控制信息种类生成公共控制容器组件的步骤,包括:
基于上述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件,其中,上述基本类数据为遵守NSObject协议的ActivityInterface基本类数据,上述ActivityInterface基本类数据具有单一性。
示例性的,ActivityInterface基本类数据为预设的基本类数据,采用DYActivityInterface基本类数据,上述DYActivityInterface基本类数据具有单一性避免了在生成上述公共控制组件的身份信息时出现错乱,导致运行发生意外,控制信息分发出现错误。
在一种可能的实施方式中,所定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系的步骤,包括:
确定上述容器管理组件的属性;
根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系;
将根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系作为上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;
具体的,判断上述容器管理组件的属性设置的上述容器管理组件与上述公共控制组件运行的平台之间的代理关系是否遵循ActivityContainerDelegate代理协议,其中,上述ActivityContainerDelegate代理协议的编写过程为创建一个头文件,在所述头文件中写入代理规则的过程,上述ActivityContainerDelegate代理协议为确保所述容器管理组件与所述公共控制组件运行的平台之间符合预设代理规则的代理协议,上述ActivityContainerDelegate代理协议能够灵活设置所述公共控制组件运行的平台之间符合预设代理规则,根据场景和用户实际需求改变所述公共控制组件运行的平台之间符合预设代理规则,进而修改上述ActivityContainerDelegate代理协议;
若上述容器管理组件的属性设置的上述容器管理组件与上述公共控制组件运行的平台之间的代理关系遵循ActivityContainerDelegate代理协议,则将上述容器管理组件的属性设置的上述容器管理组件与上述公共控制组件运行的平台之间的代理关系进行保存。
示例性的,为上述容器管理组件设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系的方法为:
Figure BDA0002977769990000151
其中,setActivityContainerDelegate为设置代理关系的功能语句,id<DYActivityContainerDelegate>)delegate为代理关系参数,Delegate为需要设置的代理关系语句,DYActivityContainerDelegate为预设的代理关系协议,Manager.containerDelegate=delegate为将上述代理关系进行保存的功能语句,其中,上述DYActivityContainerDelegate代理协议的编写过程为创建一个头文件,在所述头文件中写入预设代理规则的过程,用于实现预设代理规则,上述DYActivityContainerDelegate代理协议为确保所述容器管理组件与所述公共控制组件运行的平台之间符合预设代理规则的代理协议,上述ActivityContainerDelegate代理协议能够灵活设置所述公共控制组件运行的平台之间符合预设代理规则,根据场景和用户实际需求改变所述公共控制组件运行的平台之间符合预设代理规则,进而修改上述ActivityContainerDelegate代理协议;
if([delegateconformsToProtocol:@protocol(DYActivityContainerDelegate)]){为判断设置的上述代理关系是否遵守预设的代理关系协议的判断语句;
将上述公共控制组件与上述公共控制组件运行的平台之间的代理关系在上述公共控制组件进行保存,实现定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系的过程。
上面对本申请实施例中界面控制信息分发方法进行了描述,下面对本申请实施例中的界面控制信息分发装置进行描述。
请参阅图2,在本申请中界面控制信息分发装置的一个实施例,该图片展示装置包括:
生成模块201,用于根据预设界面控制信息种类生成公共控制容器组件;
示例性的,生成模块201,用于基于上述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件,其中,上述基本类数据为遵守NSObject协议的ActivityInterface基本类数据,上述ActivityInterface基本类数据具有单一性;根据上述预设界面控制信息种类设置容器管理组件参数;根据上述容器管理组件参数增加容器管理组件;根据上述容器管理组件生成公共控制容器组件;
基于上述预设界面控制信息种类与预设的基本类数据生成初始公共控制容器组件;
采用功能语句:
+(BOOL)playSVGA
根据上述预设界面控制信息种类设置上述容器管理组件参数;
在初始公共控制容器组件的.m文件中根据上述容器管理组件参数添加容器管理组件;
将添加上述容器管理组件的上述初始公共控制容器组件作为上述公共控制容器组件。
导入模块202,用于将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;
示例性的,导入模块202,用于构建预设控制组件的模型以替换上述预设控制组件:
DYActivityComponentModel*componentModel=[DYActivityComponent Modelnew];
其中,DYActivityComponentModel为构建功能语句,componentModel为模型语句,DYActivityComponentModel new为用以替换上述预设控制组件的预设控制组件的模型语句;
通过函数:
DYActivityContainer*container=[Manager.containerHandlercontainerWithType:componentType];
获取上述预设控制组件模型对应的上述公共控制容器组件,其中,DYActivityContainer为容器接口的功能语句,container为接口,Manager.containerHandler containerWithType为查找语句,componentType为查找条件语句;
将上述预设控制组件模型与上述公共控制容器组件进行绑定,上述绑定方法为:
Manager.componentIdMapper[componentId]=componentModel;
其中,Manager为管理者语句,componentIdMapper[componentId]为绑定功能语句,componentModel为模型语句;
将绑定上述预设控制组件模型的上述公共控制容器组件作为公共控制组件。
上述公共控制容器组件可以被所有平台调用,而将上述预设控制组件模型与上述公共控制容器组件进行绑定生成公共控制组件,便于所有平台的获取对应的公共控制组件,提高界面控制信息的分发效率。
注册模块203,用于将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;
示例性的,注册模块203,用于将上述公共控制组件在上述公共控制组件运行的平台进行注册的过程为注册上述预设控制组件和注册上述公共控制容器组件;
@param component
为上述公共控制组件注册语句;
注册上述预设控制组件和注册上述公共控制容器组件的方法为:
(void)registerComponent:(id<DYActivityComponentProtocol>)component;
其中,registerComponent为注册上述公共控制容器组件的功能语句,id<DYActivityComponentProtocol>)component为注册上述预设控制组件的功能语句。
注册上述公共控制组件得到上述公共控制组件的身份信息,便于根据上述控制信息的种类获取对应的上述公共控制组件。
定义模块204,用于定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;
示例性的,定义模块204,用于定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系的过程为:
确定上述容器管理组件的属性;根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系;将根据上述容器管理组件的属性设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系作为上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;
示例性的,为上述容器管理组件设置上述容器管理组件与上述公共控制组件运行的平台之间的代理关系的方法为:
Figure BDA0002977769990000191
其中,setActivityContainerDelegate为设置代理关系的功能语句,id<DYActivityContainerDelegate>)delegate为代理关系参数,Delegate为需要设置的代理关系语句,DYActivityContainerDelegate为预设的代理关系协议,Manager.containerDelegate=delegate为将上述代理关系进行保存的功能语句;
if([delegateconformsToProtocol:@protocol(DYActivityContainerDelegate)]){为判断设置的上述代理关系是否遵守预设的代理关系协议的判断语句;
将上述公共控制组件与上述公共控制组件运行的平台之间的代理关系在上述公共控制组件进行保存,实现定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系的过程。
获取模块205,用于根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。
示例性的,获取模块205,用于上述公共控制组件与上述公共控制组件运行的平台之间的代理关系为上述公共控制组件与上述公共控制组件运行的平台的控制器之间的代理关系;
将上述公共控制组件分发至上述公共控制组件运行的平台的方法为:
+(void)addCommonTipsWithDic:(NSDictionary*)params
其中,addCommonTipsWithDic为分发语句,(NSDictionary*)params为分发条件语句;
示例性的,分发过程为:
Figure BDA0002977769990000201
其中,addCommonTipsWithDic为分发方法协议;
self.delegate为上述公共控制组件运行的平台的控制器;
if([self.delegaterespondsToSelector:@selector(addCommonTipsWithDic:)]){[self.delegate addCommonTipsWithDic:params];}为判断上述公共控制组件运行的平台的控制器是否遵守addCommonTipsWithDic协议的判断语句;上述公共控制组件运行的平台获取上述公共控制组件时,即控制上述公共控制组件运行的平台的控制器的代理关系为上述公共控制组件与上述公共控制组件运行的平台之间的代理关系。
请参阅图3,图3为本申请实施例提供的电子设备的实施例示意图。
如图3所示,本申请实施例提供了一种电子设备,包括存储器310、处理器320及存储在存储器320上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现以下步骤:根据预设界面控制信息种类生成公共控制容器组件;将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。
如图4所示,本实施例提供了一种计算机可读存储介质400,其上存储有计算机程序411,该计算机程序411被处理器执行时实现如下步骤:根据预设界面控制信息种类生成公共控制容器组件;将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。
通过根据预设界面控制信息种类生成公共控制容器组件;将对应上述预设界面控制信息种类的预设控制组件导入上述公共控制容器组件生成公共控制组件;将上述公共控制组件在上述公共控制组件运行的平台进行注册,得到上述公共控制组件的身份信息;定义上述公共控制组件与上述公共控制组件运行的平台之间的代理关系;根据上述公共控制组件的身份信息与上述代理关系,控制上述公共控制组件运行的平台获取上述公共控制组件。根据预设界面控制信息种类生成对应所有平台的公共控制组件,通过上述公共控制组件将界面控制信息分发到各个平台,提高了界面控制信息的分发效率,在进行界面控制信息分发开发时减小了开发和测试负担,进而减小了开发界面控制信息种类的接口的工作量。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
又例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,再例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上上述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种界面控制信息分发方法,其特征在于,包括:
根据预设界面控制信息种类生成公共控制容器组件;
将对应所述预设界面控制信息种类的预设控制组件导入所述公共控制容器组件生成公共控制组件;
将所述公共控制组件在所述公共控制组件运行的平台进行注册,得到所述公共控制组件的身份信息;
定义所述公共控制组件与所述公共控制组件运行的平台之间的代理关系;
根据所述公共控制组件的身份信息与所述代理关系,控制所述公共控制组件运行的平台获取所述公共控制组件。
2.根据权利要求1所述的界面控制信息分发方法,其特征在于,所述根据预设界面控制信息种类生成公共控制容器组件的步骤,包括:
基于所述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件,其中,所述基本类数据为遵守NSObject协议的ActivityInterface基本类数据,所述ActivityInterface基本类数据具有单一性。
3.根据权利要求2所述的界面控制信息分发方法,其特征在于,所述基于所述预设界面控制信息种类与预设的基本类数据生成公共控制容器组件的步骤,包括:
根据所述预设界面控制信息种类设置容器管理组件参数;
根据所述容器管理组件参数增加容器管理组件;
根据所述容器管理组件生成公共控制容器组件。
4.根据权利要求1所述的界面控制信息分发方法,其特征在于,所述将所述公共控制组件在所述公共控制组件运行的平台进行注册的步骤,包括:
判断所述公共控制组件在所述公共控制组件需要运行的平台进行注册的线程是否为主线程;
若所述公共控制组件在所述公共控制组件需要运行的平台进行注册的线程为主线程,则判断所述公共控制组件是否遵守ActivityComponentProtocol协议;
若所述公共控制组件遵守ActivityComponentProtocol协议,则对所述公共控制组件进行注册。
5.根据权利要求1所述的界面控制信息分发方法,其特征在于,在所述定义所述公共控制组件与所述公共控制组件运行的平台之间的代理关系之前,还包括:
根据所述公共控制组件构建所述公共控制组件模型;
根据调用函数:
ActivityContainer*container=[Manager.containerHandlercontainerWithTyp e:componentType]
获取所述公共控制组件对应的所述公共控制容器组件;
其中,ActivityContainer*container为调用功能语句;
Manager.containerHandlercontainerWithTyp为按条件调用动作语句;
componentType为调用条件语句;
将所述公共控制组件模型与所述公共控制容器组件进行绑定。
6.根据权利要求3所述的界面控制信息分发方法,其特征在于,所定义所述公共控制组件与所述公共控制组件运行的平台之间的代理关系的步骤,包括:
确定所述容器管理组件的属性;
根据所述容器管理组件的属性设置所述容器管理组件与所述公共控制组件运行的平台之间的代理关系;
将根据所述容器管理组件的属性设置所述容器管理组件与所述公共控制组件运行的平台之间的代理关系作为所述公共控制组件与所述公共控制组件运行的平台之间的代理关系。
7.根据权利要求6所述的界面控制信息分发方法,其特征在于,在所述根据所述公共控制组件的身份信息与所述代理关系,控制所述公共控制组件运行的平台获取所述公共控制组件的步骤之前,还包括:
判断所述容器管理组件的属性设置的所述容器管理组件与所述公共控制组件运行的平台之间的代理关系是否遵循ActivityContainerDelegate代理协议,其中,所述ActivityContainerDelegate代理协议为确保所述容器管理组件与所述公共控制组件运行的平台之间符合预设代理规则的代理协议;
若所述容器管理组件的属性设置的所述容器管理组件与所述公共控制组件运行的平台之间的代理关系遵循ActivityContainerDelegate代理协议,则将所述容器管理组件的属性设置的所述容器管理组件与所述公共控制组件运行的平台之间的代理关系进行保存。
8.一种界面控制信息分发装置,其特征在于,包括:
生成模块,用于根据预设界面控制信息种类生成公共控制容器组件;
导入模块,用于将对应所述预设界面控制信息种类的预设控制组件导入所述公共控制容器组件生成公共控制组件;
注册模块,用于将所述公共控制组件在所述公共控制组件运行的平台进行注册,得到所述公共控制组件的身份信息;
定义模块,用于定义所述公共控制组件与所述公共控制组件运行的平台之间的代理关系;
获取模块,用于根据所述公共控制组件的身份信息与所述代理关系,控制所述公共控制组件运行的平台获取所述公共控制组件。
9.一种电子设备,包括:储存器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7中任一项所述的界面控制信息分发方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的界面控制信息分发的步骤。
CN202110279927.3A 2021-03-16 2021-03-16 一种界面控制信息分发方法及相关设备 Pending CN115086690A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110279927.3A CN115086690A (zh) 2021-03-16 2021-03-16 一种界面控制信息分发方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110279927.3A CN115086690A (zh) 2021-03-16 2021-03-16 一种界面控制信息分发方法及相关设备

Publications (1)

Publication Number Publication Date
CN115086690A true CN115086690A (zh) 2022-09-20

Family

ID=83246293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110279927.3A Pending CN115086690A (zh) 2021-03-16 2021-03-16 一种界面控制信息分发方法及相关设备

Country Status (1)

Country Link
CN (1) CN115086690A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215627A1 (en) * 2003-04-09 2004-10-28 Whalen William J. Support mechanisms for improved group policy management user interface
CN102681825A (zh) * 2011-03-09 2012-09-19 北京航空航天大学 服务运行容器管理系统和方法
US20160306527A1 (en) * 2015-04-17 2016-10-20 Salesforce.Com, Inc. Systems and methods of bypassing suppression of event bubbling for popup controls
CN110134519A (zh) * 2019-05-21 2019-08-16 中国太平洋保险(集团)股份有限公司 一种基于容器平台实现网站管理的控制方法及装置
CN111831269A (zh) * 2020-07-21 2020-10-27 腾讯科技(深圳)有限公司 一种应用开发系统、运行方法、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215627A1 (en) * 2003-04-09 2004-10-28 Whalen William J. Support mechanisms for improved group policy management user interface
CN102681825A (zh) * 2011-03-09 2012-09-19 北京航空航天大学 服务运行容器管理系统和方法
US20160306527A1 (en) * 2015-04-17 2016-10-20 Salesforce.Com, Inc. Systems and methods of bypassing suppression of event bubbling for popup controls
CN110134519A (zh) * 2019-05-21 2019-08-16 中国太平洋保险(集团)股份有限公司 一种基于容器平台实现网站管理的控制方法及装置
CN111831269A (zh) * 2020-07-21 2020-10-27 腾讯科技(深圳)有限公司 一种应用开发系统、运行方法、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107168726B (zh) 一种动态配置应用程序的方法和装置
EP3374856A1 (en) Generation of an application from template
CN110995539A (zh) 业务系统监控方法、装置及计算机设备
CN109542878B (zh) 一种列表创建方法及装置
US8704852B2 (en) Methods for generating one or more composite image maps and systems thereof
CN108132832B (zh) 应用程序启动方法和装置
CN109032685A (zh) 一种加速安卓系统启动的方法及终端
CN110673827B (zh) 基于安卓系统的资源调用方法及装置、电子设备
WO2015010564A1 (en) Data report process method and device thereof
CN115086690A (zh) 一种界面控制信息分发方法及相关设备
CN112417331A (zh) 页面路由方法及装置、电子设备、计算机可读存储介质
CN114239095A (zh) 产品定制模块的生成方法及装置、电子设备、存储介质
CN114610849A (zh) 一种产品制造程序的确定方法、装置、设备及存储介质
CN111951114A (zh) 一种任务执行方法、装置、电子设备及可读存储介质
CN112989234A (zh) 数据展示方法、装置、终端设备及存储介质
CN105939227B (zh) 一种基于cmdb的服务配置的方法、系统及服务器
CN109240834B (zh) 一种优化方法、计算机设备和存储介质
CN115480745B (zh) 基于配置文件的代码生成方法及装置
CN114443029A (zh) 一种引导界面组件的生成方法及相关装置
CN115145909A (zh) 一种表格构建方法及相关设备
CN113645064B (zh) 任务下发方法、装置、电子设备及存储介质
CN116739612B (zh) 展示权益信息的方法及电子设备
CN112905194A (zh) 一种安装包生成方法及装置
US20240004510A1 (en) User-specific graphical user interface based on a graphical user interface template
CN108595206B (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