一种基于FirefoxOS的微件信息显示方法及装置的制造方法

文档序号:9826082阅读:331来源:国知局
一种基于Firefox OS的微件信息显示方法及装置的制造方法
【技术领域】
[0001]本发明属于计算机领域,尤其涉及一种基于Firefox OS的微件信息显示方法及装置。
【背景技术】
[0002]目前,在智能设备中,微件(widget)主要提供即时信息给用户。其实现主要包括两部分:(l)widget应用,其主要功能是获取widget显示所需要的信息。该widget应用一般作为一个独立应用存在智能设备中;(2)widget宿主应用,一般指智能设备的管理桌面的应用,该widget宿主应用主要功能是布局widget位置和显示widget。
[0003]现有Firefox OS中,主要是通过iframe来实现widget的消息的显示,其中,该iframe为HTML标签。例如,在A应用添加widget html文件;在B应用(widget宿主应用)增加iframe标签,再加载A应用中的widget html,使得A应用中的widget html在B应用的html页面中显示。即B应用的iframe直接加载A应用的widget html,被加载后的A应用的widget html作为B应用的html的子页面,并直接与云端通信。由于A应用的widget html的元素和B应用的html的元素分属不同的域,因此他们不能直接交互,需要增加额外的接口实现交互操作,从而增加了交互复杂度。例如,在用户移动widget时,widget获取用户的拖拽消息,此时,B应用就需要截获用户的拖拽消息以控制widget的显示,或者接收widget转发的用户的拖拽消息,而无论采取何种方式都需要增加额外的接口,且通过iframe增加html加载的次数,从而增加获取widget信息的等待时间,增大占用的内存量。

【发明内容】

[0004]本发明实施例提供了一种基于Firefox OS的微件信息显示方法,旨在解决现有方法在实现widget的消息的显示时,需要在widget宿主应用增加多个接口,从而导致交互复杂度过高的问题。
[0005]本发明实施例是这样实现的,一种基于Firefox OS的微件信息显示方法,所述方法包括下述步骤:
[0006]微件widget宿主应用通过容器加载widget初始布局;所述容器为装载有widget消息的容器,所述widget消息是由widget应用获取的消息;
[0007]widget宿主应用根据所述容器装载的widget消息刷新所述widget初始布局。
[0008]本发明实施例的另一目的在于提供一种基于Firefox OS的微件信息显示装置,所述装置包括:
[0009]widget布局加载单元,用于通过容器加载widget初始布局;所述容器为装载有widget消息的容器,所述widget消息是由widget应用获取的消息;
[0010]widget布局刷新单元,用于根据所述容器装载的widget消息刷新所述widget初始布局。
[0011]在本发明实施例中,由于容器能够直接获取widget应用从云服务器获取的widget信息,而widget宿主应用又能从容器中获取相应的widget消息来刷新widget布局,因此widget宿主应用无需直接从云服务器获取信息,从而节省了在获取信息时产生的等待时间。并且,由于widget宿主应用与容器能够直接交互,因此,无需增加额外的接口就能实现通信,从而减少了交互复杂度。
【附图说明】
[0012]图1是本发明第一实施例提供的一种基于Firefox OS的微件信息显示方法的流程图;
[0013]图2是本发明第二实施例提供的一种基于Firefox OS的微件信息显示装置的结构图。
【具体实施方式】
[0014]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0015]本发明实施例中,将widget的信息界面和数据信息分离,widget应用将从云服务器获取的信息封装为一个对象后,以widget消息的形式分发,widget宿主应用通过对应的容器监听到需要接收widget消息后将负责接收对应的widget消息,并将接收的widget消息发送至widget宿主应用,以使该widget宿主应用根据接收的widget消息刷新widget界面。
[0016]为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0017]实施例一:
[0018]图1示出了本发明第一实施例提供的一种基于Firefox OS的微件信息显示方法的流程图,详述如下:
[0019]步骤Sll, widget宿主应用通过容器加载widget初始布局,所述容器为装载有widget消息的容器,所述widget消息是由widget应用获取的消息。其中,所述容器可以是通过div(即划分区域,是divis1n的缩写)形式形成的div容器,当然,也可以是通过其他形式形成的容器,如通过sect1n (部分)形式或span (跨度)形式等形成容器,此处不作限定。本实施例中采用div容器。
[0020]其中,一个widget宿主应用可以管理一个或多个widget,每个widget都有一个作为容器的div容器。
[0021]在该步骤中,widget宿主应用通过div容器从系统的存储器中加载widget初始布局,该widget初始布局即为widget初始界面,其包含需要显示的widget元素和信息。由于该div容器加载的是widget初始布局,因此div容器加载后刷新过程中获取的也是widget布局,系统不会创建window等内核对象,只创建widget布局中使用的元素对象,从而节省widget宿主应用的内存占用;而现有技术中iframe加载的是一个html网页,系统会为该html创建window等对象,当widget宿主应用利用iframe加载多个widget时,这种多余的对象会成倍增加,最终导致widget宿主应用内存溢出。
[0022]步骤S12, widget宿主应用根据所述容器装载的widget消息刷新所述widget初始布局。
[0023]该步骤中,widget宿主应用获取该widget界面上需要更新显示的元素和信息,并根据获取的上述widget消息刷新所述widget初始布局。
[0024]进一步地,在步骤S12之后,还包括widget宿主应用根据所述容器装载的widget消息刷新现有的widget布局。所述现有的widget布局为widget初始布局经过一次或多次刷新之后的widget布局。
[0025]由于div容器能够直接获取widget应用从云服务器获取的信息,而widget宿主应用又能从div容器中获取相应的widget消息来刷新widget布局,因此widget宿主应用无需直接从云服务器获取信息,从而节省了在获取信息时产生的等待时间。并且,由于widget宿主应用与div容器能够直接交互,因此,无需增加额外的接口就能实现通信,从而减少了交互复杂度。
[0026]优选地,步骤S12,所述widget宿主应用根据所述容器装载的widget消息刷新所述widget初始布局的步骤具体包括:
[0027]Al、所述容器接收widget应用从服务器上获取并发送的widget消息。
[0028]A2、widget宿主应用根据所述容器装载的widget消息刷新所述widget初始布局。
[0029]在上述步骤Al?A2中,所述的容器为div容器,且div容器设置有监听器,用于监听是否需要接收消息,当监听到需要接收消息时,接收widget应用发送的widget消息。其中,接收的widget消息是由消息头和信息封装为一个对象后得到,这样,widget宿主应用接收到widget消息时,解析出封装后的对象就能获取相应的信息。其中,该消息头包含有widget消息将要被分发到的div容器的唯一标识。由于将信息封装后再传输,因此,非widget消息对应的div容器难以直接获取相应的信息,从而提高传输的信息的安全性。并且,在多个widget应用获取的信息被封装后,都可存放在一个全局的路径,便于信息的分发。
[0030]优选地,在步骤Sll,所述widget宿主应用通过容器加载widget初始布局的步骤之后,包括下述步骤:
[0031]B1、所述容器获取用户拖拽widget宿主应用上的widget的拖拽消息。其中,拖拽消息包含widget被拖拽的方向、距离等信息。
[0032]B2、所述容器将获取的拖拽消息直接发送至所述widget宿主应用。
[0033]B3、所述widget宿主应用根据接收的拖拽消息重新计算widget的显示位置,再根据计算结果移动widget的显示位置。
[0034]进一步地,步骤BI?B3也可以在步骤S12之后实现。
[0035]在步骤BI?B3中,当用户拖拽widget宿主应用上的widget时,div容器获取包含widget被拖拽的方向、距离等信息的拖拽消息,并将获取的拖拽消息发送至widget宿主应用,以便该widget宿主应用根据接收的拖拽消息以及widget初始的位置信息确定该widget最终的位置信息。其中,div容器将拖拽消息发送至widget宿主应用的具体方式如下:div容器中的元素直接将获取的拖拽消息冒泡给该div容器中的该元素的父元素,该div容器中的该元素的父元素对应于widget宿主应用,这样,widget宿主应用无需截获用户的拖拽消息,或者接收widget转发的拖拽消息就能从div容器获取用户的拖拽消息,即无需增加额外的接口就能获取用户的拖拽消息。而iframe加载的widget布局是另外一个html,该iframe内部的消息不会冒泡到iframe以外的元素,因此widget宿主应用需要使用html5提供的消息转发机制才能获取widget的拖拽消息,即widget宿主应用不能直接控制widget的显示位置,从而使步骤很繁琐。
[0036]优选地,所述widget宿主应用动态创建容器。具体地,当用户在某个应用添加widget时,该某个应用(widget宿主应用)会创建新的容器(div容器),然后加载widget初始布局;当用户删除widget时,widget宿主应用会删除对应的widget的div容器。当然,在用户添加widget时,系统会呈现记录有目前可用的widget的注册表,以供用户选择。
[0037]优选地,在步骤Sll,在所述widget宿主应用通过容器加载widget初始布局的步骤之后,包括下述步骤:
[0038]Cl、所述widget宿主应用接收用户通过widget发送的设置消息,所述设置消息包括所述widget显示的数据的类型,或者,包括所述widget不会显示的数据的类型。
[0039]C2、所述widget宿主应用将接收的设置消息发送至widget应用。
[0040]进一步地,步骤Cl?C2也可以在步骤S12之后实现。
[0041]上述Cl?C2中,用户可直接在widget进行设置,div容器获取用户的设置消息之后,再将该设置消息发送至widget宿主应用,该widget宿主应用再将接收的设置消息转发至widget应用。这样,widget应用可以根据接收的设置消息,选择哪些需发送给widget宿主应用的消息,哪些不需要发送给widget宿主应用的消息,widget应用通过将从云服务器获取的信息过滤后,再将过滤后的信息发送给widget宿主应用。
[0042]优选地,本发明实施例中,widget宿主应用、div容器、widget应用之间的通信接口为mozSetting。该mozS
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1