具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例提供一种电子设备。所述电子设备可以包括PC(personalcomputer)机、服务器、工控机(工业控制计算机)、移动智能电话、平板电子设备、便携式计算机(例如笔记本电脑等)、个人数字助理(PDA)、桌面型计算机、和智能穿戴设备等。
在本实施例中,在所述电子设备中可以安装有操作系统。所述操作系统可以为能够控制和管理所述电子设备的硬件资源和软件资源的程序。所述操作系统可以包括安卓系统(谷歌公司开发的操作系统)、IOS系统(苹果公司开发的操作系统)、和Windows系统(微软公司开发的操作系统)等。当然,所述操作系统还可以包括基于以上操作系统进一步改进、或定制的操作系统,例如,MIUI(米柚,小米公司基于安卓系统开发的手机操作系统)、和EMUI(华为公司基于安卓系统开发的手机操作系统)等。在所述操作系统中可以安装有应用程序。所述应用程序可以响应用户的操作,向用户提供已经通过指令设定的功能。所述应用程序可以包括视频软件、音频软件、图像软件、购物软件、和支付软件等。
在本实施例中,所述操作系统可以提供有控件的基类。所述基类可以用于创建所述应用程序页面中的业务控件。所述业务控件可以继承所述基类中的变量和函数。所述业务控件例如可以包括标签控件、文本控件、按钮控件、文本框控件、和图片控件等。例如,所述操作系统可以为IOS系统。所述基类可以为UIView。当然,此处的基类UIView仅为示例,实际上在所述操作系统为其它的操作系统时,所述基类还可以为其它的类。
在所述基类中可以引入控件标识变量。所述控件标识变量可以用于表示消息提示控件标识。其中,所述消息提示控件标识可以用于标识消息提示控件。所述消息提示控件可以包括红点和角标等。所述消息提示控件可以显示在所述应用程序的页面中,且与该页面中的业务控件相关联。消息提示控件与业务控件相关联,可以理解为:业务控件能够成为消息提示控件的容器;消息提示控件能够对业务控件承载的业务进行提示,以对用户进行提醒。具体可以采用任意方式在所述基类中引入控件标识变量。具体地,可以直接在所述基类中引入控件标识变量。例如,所述操作系统可以为IOS系统。所述基类可以为UIView。开发人员可以在基类UIView中创建类别category;可以在该类别category中引入成员变量aubadgeWidgetId,作为控件标识变量。当然,还可以在所述基类的子类中引入控件标识变量。
在本实施例的一个实施方式中,在所述基类中还可以引入第一位置变量。所述第一位置变量可以用于表示消息提示控件在所述应用程序的页面中的位置。在所述基类中引入第一位置变量的方式,可以与在所述基类中引入控件标识变量的方式相类似。进一步地,在所述基类中还可以引入第一接口函数。所述第一接口函数可以与所述第一位置变量相关联;具体可以用于对所述第一位置变量进行赋值。这样通过所述第一接口函数可以实现对消息提示控件在页面中的位置进行设置。例如,所述第一接口函数可以为au_SetFrame:(CGRect)frame。在所述基类中引入第一接口函数的方式,可以与在所述基类中引入控件标识变量的方式相类似。
在本实施例的一个实施方式中,在所述基类中还可以引入第二位置变量。所述第二位置变量可以用于表示消息提示控件相对于业务控件的位置,例如消息提示控件相对于业务控件的内边距等。在所述基类中引入第二位置变量的方式,可以与在所述基类中引入控件标识变量的方式相类似。进一步地,在本实施方式中,在所述基类中还可以引入第二接口函数。所述第二接口函数可以与所述第二位置变量相关联;具体可以用于对所述第二位置变量进行赋值。这样通过所述第二接口函数可以实现对消息提示控件相对于业务控件的位置进行设置。例如,所述第二接口函数可以为au_SetEdge:(UIEdgeInsets)insets。在所述基类中引入第二接口函数的方式,可以与在所述基类中引入控件标识变量的方式相类似。
在本实施例中,所述应用程序中可以具有控件管理组件。所述控件管理组件可以嵌入到所述应用程序中。所述控件管理组件可以提供有API(Application ProgrammingInterface)接口以供调用。所述控件管理组件可以用于创建消息提示控件。当然,所述控件管理组件还可以实现其它功能。例如在需要时销毁实例化的消息提示控件。
请参阅图1、图2和图3。本说明书实施例提供一种提示方法。所述提示方法可以应用于消息提示控件组件。所述消息提示控件组件可以嵌入到所述应用程序中。所述消息提示控件组件可以提供有API(Application Programming Interface)接口以供调用。所述提示方法可以包括以下步骤。
步骤S10:根据页面中业务控件传入的消息提示控件标识,对控件标识变量进行赋值。
在本实施例中,所述页面例如可以包括添加购物车页面、支付页面、和商品详情页面等。所述页面可以包括至少一个业务控件。所述业务控件承载的功能或业务发生变化,从而需要在所述页面中显示与该业务控件相关联的消息提示控件。如此,在所述应用程序对所述页面进行渲染的过程中,所述页面中的业务控件可以根据需要生成消息提示控件标识;可以调用所述消息提示控件组件提供的API接口,以将所述消息提示控件标识传入所述消息提示控件组件。所述消息提示控件组件可以根据传入的消息提示控件标识,对控件标识变量进行赋值。
在本实施例的一个实施方式中,所述消息提示控件标识可以携带有消息提示控件的样式信息。如此所述页面中的业务控件可以根据待显示的消息提示控件的样式,生成对应的消息提示控件标识。请参阅图1。所述样式信息可以包括以下至少一种:颜色、大小、是否显示数字、是否显示“new”字、是否显示“新”字、是否显示“惠”字等。例如,消息提示控件标识与其携带的样式信息可以如下表1所示。
表1
步骤S12:根据所述控件标识变量调用控件管理组件,得到控件管理组件创建的消息提示控件。
在本实施例中,所述消息提示控件组件可以将赋值后的控件标识变量作为参数,通过所述控件管理组件提供的API接口调用所述控件管理组件,以将消息提示控件标识传入所述控件管理组件。所述控件管理组件可以根据传入的消息提示控件标识,创建消息提示控件;可以将消息提示控件的地址反馈给所述消息提示控件组件。所述消息提示控件组件可以接收反馈的地址;可以根据所述地址获得所述消息提示控件。例如,所述控件管理组件可以将指向消息提示控件地址的指针反馈给所述消息提示控件组件。
具体地,所述控件管理组件创建消息提示控件的过程,可以理解为实例化消息提示控件的过程。例如,所述控件管理组件可以通过如下代码实例化消息提示控件。
UIView*badgeView=[[UIView alloc]init];
badgeView.tag=888+index;
badgeView.bagdgeId=aubadgeWidgetId;
badgeView.backgroundColor=[UIColor redColor];
CGRect tabFrame=self.frame;
float percentX=(index+0.6)/TabbarItemNums;
CGFloat x=ceilf(percentX*tabFrame.size.width);
CGFloat y=ceilf(0.1*tabFrame.size.height);
badgeView.frame=CGRectMake(x,y,10,10)。
在本实施例的一个实施方式中,所述消息提示控件标识可以携带有消息提示控件的样式信息。如此创建的消息提示控件可以具有所述样式信息描述的样式。
步骤S14:将所述消息提示控件添加至所述业务控件上。
在本实施例中,如前所述,业务控件能够成为消息提示控件的容器。如此所述消息提示控件组件可以将所述消息提示控件添加至所述业务控件上,以对所述业务控件承载的业务进行提示。例如,所述消息提示控件组件可以使用函数addSubView将所述消息提示控件组件添加至所述业务控件上。
在本实施例中,所述消息提示控件组件还可以将所述消息提示控件显示在所述页面上。具体地,在所述应用程序对所述页面进行渲染的过程中,所述页面中的业务控件可以调用所述消息提示控件组件。所述消息提示控件组件可以在接收到调用以后,将所述消息提示控件显示在所述页面上。
在本实施例的一个实施方式中,创建的消息提示控件可以具有第一位置数据。所述第一位置数据可以用于表示消息提示控件在所述页面中的位置。所述消息提示控件组件可以获取消息提示控件的第一位置数据;可以根据所述第一位置数据,对第一位置变量进行赋值;可以根据第一位置变量的值,在所述页面中显示所述消息提示控件。
进一步地,在本实施方式中,所述消息提示控件组件还可以根据所述业务控件传入的第二位置数据,对所述第一位置变量再次进行赋值;可以根据第一位置变量的值,在所述页面中显示消息提示控件。这样可以实现对所述第一位置变量的值进行修改,从而实现重新设置消息提示控件在所述页面中的位置。具体地,所述业务控件可以调用第一接口函数,以将第二位置数据传入所述消息提示控件组件。所述消息提示控件组件可以接收传入的第二位置数据;可以根据所述第二位置数据,对所述第一位置变量再次进行赋值。
在本实施例的另一个实施方式中,创建的消息提示控件可以具有第二位置数据。所述第二位置数据可以用于表示消息提示控件在所述页面中相对于业务控件的位置。所述消息提示控件组件可以获取消息提示控件的第二位置数据;可以根据第二位置数据,对第二位置变量进行赋值;可以根据第二位置变量的值,在所述页面中显示所述消息提示控件。
进一步地,在本实施方式中,所述消息提示控件组件还可以根据所述业务控件传入的第四位置数据,对所述第二位置变量再次进行赋值;可以根据第二位置变量的值,在所述页面中显示消息提示控件。这样可以实现对所述第二位置变量的值进行修改,从而实现重新设置消息提示控件在所述页面中相对于业务控件的位置。具体地,所述业务控件可以调用第二接口函数,以将第四位置数据传入所述消息提示控件组件。所述消息提示控件组件可以接收传入的第四位置数据;可以根据所述第四位置数据,对所述第二位置变量再次进行赋值。
在本实施例中,应用程序中可以嵌入有消息提示控件组件。这样所述应用程序的业务控件中便无需添加控件管理组件调用逻辑和消息提示控件显示逻辑;可以将消息提示控件标识统一传入消息提示控件组件,由所述消息提示控件组件实现控件管理组件的调用和消息提示控件的显示。如此所述应用程序可以避免重复配置大量的业务逻辑,减少代码冗余,便于维护。
请参阅图4。基于图3对应的实施例,本说明书实施例还提供一种提示装置,应用于消息提示控件组件。所述提示装置可以包括以下单元。
赋值单元20,用于根据页面中业务控件传入的消息提示控件的标识,对控件标识变量进行赋值;所述业务控件基于控件的基类创建;在所述基类中引入有控件标识变量;
调用单元22,用于根据所述控件标识变量调用控件管理组件,得到控件管理组件创建的消息提示控件;
添加单元24,用于将所述消息提示控件添加至所述业务控件上;以对所述业务控件承载的业务进行提示。
请参阅图5。基于图3对应的实施例,本说明书实施例还提供一种电子设备。所述电子设备可以包括存储器和处理器。
在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储计算机指令。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以执行所述计算机指令实现以下步骤:根据页面中业务控件传入的消息提示控件的标识,对控件标识变量进行赋值;所述业务控件基于控件的基类创建;在所述基类中引入有控件标识变量;根据所述控件标识变量调用控件管理组件,得到控件管理组件创建的消息提示控件;将所述消息提示控件添加至所述业务控件上;以对所述业务控件承载的业务进行提示。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于提示装置实施例、和电子设备实施例而言,由于其基本相似于提示方法实施例,所以描述的比较简单,相关之处参见提示方法实施例的部分说明即可。
本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。