一種基于Firefox OS的微件信息顯示方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機領(lǐng)域,尤其涉及一種基于Firefox OS的微件信息顯示方法及裝置。
【背景技術(shù)】
[0002]目前,在智能設(shè)備中,微件(widget)主要提供即時信息給用戶。其實現(xiàn)主要包括兩部分:(l)widget應(yīng)用,其主要功能是獲取widget顯示所需要的信息。該widget應(yīng)用一般作為一個獨立應(yīng)用存在智能設(shè)備中;(2)widget宿主應(yīng)用,一般指智能設(shè)備的管理桌面的應(yīng)用,該widget宿主應(yīng)用主要功能是布局widget位置和顯示widget。
[0003]現(xiàn)有Firefox OS中,主要是通過iframe來實現(xiàn)widget的消息的顯示,其中,該iframe為HTML標(biāo)簽。例如,在A應(yīng)用添加widget html文件;在B應(yīng)用(widget宿主應(yīng)用)增加iframe標(biāo)簽,再加載A應(yīng)用中的widget html,使得A應(yīng)用中的widget html在B應(yīng)用的html頁面中顯示。即B應(yīng)用的iframe直接加載A應(yīng)用的widget html,被加載后的A應(yīng)用的widget html作為B應(yīng)用的html的子頁面,并直接與云端通信。由于A應(yīng)用的widget html的元素和B應(yīng)用的html的元素分屬不同的域,因此他們不能直接交互,需要增加額外的接口實現(xiàn)交互操作,從而增加了交互復(fù)雜度。例如,在用戶移動widget時,widget獲取用戶的拖拽消息,此時,B應(yīng)用就需要截獲用戶的拖拽消息以控制widget的顯示,或者接收widget轉(zhuǎn)發(fā)的用戶的拖拽消息,而無論采取何種方式都需要增加額外的接口,且通過iframe增加html加載的次數(shù),從而增加獲取widget信息的等待時間,增大占用的內(nèi)存量。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了一種基于Firefox OS的微件信息顯示方法,旨在解決現(xiàn)有方法在實現(xiàn)widget的消息的顯示時,需要在widget宿主應(yīng)用增加多個接口,從而導(dǎo)致交互復(fù)雜度過高的問題。
[0005]本發(fā)明實施例是這樣實現(xiàn)的,一種基于Firefox OS的微件信息顯示方法,所述方法包括下述步驟:
[0006]微件widget宿主應(yīng)用通過容器加載widget初始布局;所述容器為裝載有widget消息的容器,所述widget消息是由widget應(yīng)用獲取的消息;
[0007]widget宿主應(yīng)用根據(jù)所述容器裝載的widget消息刷新所述widget初始布局。
[0008]本發(fā)明實施例的另一目的在于提供一種基于Firefox OS的微件信息顯示裝置,所述裝置包括:
[0009]widget布局加載單元,用于通過容器加載widget初始布局;所述容器為裝載有widget消息的容器,所述widget消息是由widget應(yīng)用獲取的消息;
[0010]widget布局刷新單元,用于根據(jù)所述容器裝載的widget消息刷新所述widget初始布局。
[0011]在本發(fā)明實施例中,由于容器能夠直接獲取widget應(yīng)用從云服務(wù)器獲取的widget信息,而widget宿主應(yīng)用又能從容器中獲取相應(yīng)的widget消息來刷新widget布局,因此widget宿主應(yīng)用無需直接從云服務(wù)器獲取信息,從而節(jié)省了在獲取信息時產(chǎn)生的等待時間。并且,由于widget宿主應(yīng)用與容器能夠直接交互,因此,無需增加額外的接口就能實現(xiàn)通信,從而減少了交互復(fù)雜度。
【附圖說明】
[0012]圖1是本發(fā)明第一實施例提供的一種基于Firefox OS的微件信息顯示方法的流程圖;
[0013]圖2是本發(fā)明第二實施例提供的一種基于Firefox OS的微件信息顯示裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0014]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0015]本發(fā)明實施例中,將widget的信息界面和數(shù)據(jù)信息分離,widget應(yīng)用將從云服務(wù)器獲取的信息封裝為一個對象后,以widget消息的形式分發(fā),widget宿主應(yīng)用通過對應(yīng)的容器監(jiān)聽到需要接收widget消息后將負責(zé)接收對應(yīng)的widget消息,并將接收的widget消息發(fā)送至widget宿主應(yīng)用,以使該widget宿主應(yīng)用根據(jù)接收的widget消息刷新widget界面。
[0016]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進行說明。
[0017]實施例一:
[0018]圖1示出了本發(fā)明第一實施例提供的一種基于Firefox OS的微件信息顯示方法的流程圖,詳述如下:
[0019]步驟Sll, widget宿主應(yīng)用通過容器加載widget初始布局,所述容器為裝載有widget消息的容器,所述widget消息是由widget應(yīng)用獲取的消息。其中,所述容器可以是通過div(即劃分區(qū)域,是divis1n的縮寫)形式形成的div容器,當(dāng)然,也可以是通過其他形式形成的容器,如通過sect1n (部分)形式或span (跨度)形式等形成容器,此處不作限定。本實施例中采用div容器。
[0020]其中,一個widget宿主應(yīng)用可以管理一個或多個widget,每個widget都有一個作為容器的div容器。
[0021]在該步驟中,widget宿主應(yīng)用通過div容器從系統(tǒng)的存儲器中加載widget初始布局,該widget初始布局即為widget初始界面,其包含需要顯示的widget元素和信息。由于該div容器加載的是widget初始布局,因此div容器加載后刷新過程中獲取的也是widget布局,系統(tǒng)不會創(chuàng)建window等內(nèi)核對象,只創(chuàng)建widget布局中使用的元素對象,從而節(jié)省widget宿主應(yīng)用的內(nèi)存占用;而現(xiàn)有技術(shù)中iframe加載的是一個html網(wǎng)頁,系統(tǒng)會為該html創(chuàng)建window等對象,當(dāng)widget宿主應(yīng)用利用iframe加載多個widget時,這種多余的對象會成倍增加,最終導(dǎo)致widget宿主應(yīng)用內(nèi)存溢出。
[0022]步驟S12, widget宿主應(yīng)用根據(jù)所述容器裝載的widget消息刷新所述widget初始布局。
[0023]該步驟中,widget宿主應(yīng)用獲取該widget界面上需要更新顯示的元素和信息,并根據(jù)獲取的上述widget消息刷新所述widget初始布局。
[0024]進一步地,在步驟S12之后,還包括widget宿主應(yīng)用根據(jù)所述容器裝載的widget消息刷新現(xiàn)有的widget布局。所述現(xiàn)有的widget布局為widget初始布局經(jīng)過一次或多次刷新之后的widget布局。
[0025]由于div容器能夠直接獲取widget應(yīng)用從云服務(wù)器獲取的信息,而widget宿主應(yīng)用又能從div容器中獲取相應(yīng)的widget消息來刷新widget布局,因此widget宿主應(yīng)用無需直接從云服務(wù)器獲取信息,從而節(jié)省了在獲取信息時產(chǎn)生的等待時間。并且,由于widget宿主應(yīng)用與div容器能夠直接交互,因此,無需增加額外的接口就能實現(xiàn)通信,從而減少了交互復(fù)雜度。
[0026]優(yōu)選地,步驟S12,所述widget宿主應(yīng)用根據(jù)所述容器裝載的widget消息刷新所述widget初始布局的步驟具體包括:
[0027]Al、所述容器接收widget應(yīng)用從服務(wù)器上獲取并發(fā)送的widget消息。
[0028]A2、widget宿主應(yīng)用根據(jù)所述容器裝載的widget消息刷新所述widget初始布局。
[0029]在上述步驟Al?A2中,所述的容器為div容器,且div容器設(shè)置有監(jiān)聽器,用于監(jiān)聽是否需要接收消息,當(dāng)監(jiān)聽到需要接收消息時,接收widget應(yīng)用發(fā)送的widget消息。其中,接收的widget消息是由消息頭和信息封裝為一個對象后得到,這樣,widget宿主應(yīng)用接收到widget消息時,解析出封裝后的對象就能獲取相應(yīng)的信息。其中,該消息頭包含有widget消息將要被分發(fā)到的div容器的唯一標(biāo)識。由于將信息封裝后再傳輸,因此,非widget消息對應(yīng)的div容器難以直接獲取相應(yīng)的信息,從而提高傳輸?shù)男畔⒌陌踩?。并且,在多個widget應(yīng)用獲取的信息被封裝后,都可存放在一個全局的路徑,便于信息的分發(fā)。
[0030]優(yōu)選地,在步驟Sll,所述widget宿主應(yīng)用通過容器加載widget初始布局的步驟之后,包括下述步驟:
[0031]B1、所述容器獲取用戶拖拽widget宿主應(yīng)用上的widget的拖拽消息。其中,拖拽消息包含widget被拖拽的方向、距離等信息。
[0032]B2、所述容器將獲取的拖拽消息直接發(fā)送至所述widget宿主應(yīng)用。
[0033]B3、所述widget宿主應(yīng)用根據(jù)接收的拖拽消息重新計算widget的顯示位置,再根據(jù)計算結(jié)果移動widget的顯示位置。
[0034]進一步地,步驟BI?B3也可以在步驟S12之后實現(xiàn)。
[0035]在步驟BI?B3中,當(dāng)用戶拖拽widget宿主應(yīng)用上的widget時,div容器獲取包含widget被拖拽的方向、距離等信息的拖拽消息,并將獲取的拖拽消息發(fā)送至widget宿主應(yīng)用,以便該widget宿主應(yīng)用根據(jù)接收的拖拽消息以及widget初始的位置信息確定該widget最終的位置信息。其中,div容器將拖拽消息發(fā)送至widget宿主應(yīng)用的具體方式如下:div容器中的元素直接將獲取的拖拽消息冒泡給該div容器中的該元素的父元素,該div容器中的該元素的父元素對應(yīng)于widget宿主應(yīng)用,這樣,widget宿主應(yīng)用無需截獲用戶的拖拽消息,或者接收widget轉(zhuǎn)發(fā)的拖拽消息就能從div容器獲取用戶的拖拽消息,即無需增加額外的接口就能獲取用戶的拖拽消息。而iframe加載的widget布局是另外一個html,該iframe內(nèi)部的消息不會冒泡到iframe以外的元素,因此widget宿主應(yīng)用需要使用html5提供的消息轉(zhuǎn)發(fā)機制才能獲取widget的拖拽消息,即widget宿主應(yīng)用不能直接控制widget的顯示位置,從而使步驟很繁瑣。
[0036]優(yōu)選地,所述widget宿主應(yīng)用動態(tài)創(chuàng)建容器。具體地,當(dāng)用戶在某個應(yīng)用添加widget時,該某個應(yīng)用(widget宿主應(yīng)用)會創(chuàng)建新的容器(div容器),然后加載widget初始布局;當(dāng)用戶刪除widget時,widget宿主應(yīng)用會刪除對應(yīng)的widget的div容器。當(dāng)然,在用戶添加widget時,系統(tǒng)會呈現(xiàn)記錄有目前可用的widget的注冊表,以供用戶選擇。
[0037]優(yōu)選地,在步驟Sll,在所述widget宿主應(yīng)用通過容器加載widget初始布局的步驟之后,包括下述步驟:
[0038]Cl、所述widget宿主應(yīng)用接收用戶通過widget發(fā)送的設(shè)置消息,所述設(shè)置消息包括所述widget顯示的數(shù)據(jù)的類型,或者,包括所述widget不會顯示的數(shù)據(jù)的類型。
[0039]C2、所述widget宿主應(yīng)用將接收的設(shè)置消息發(fā)送至widget應(yīng)用。
[0040]進一步地,步驟Cl?C2也可以在步驟S12之后實現(xiàn)。
[0041]上述Cl?C2中,用戶可直接在widget進行設(shè)置,div容器獲取用戶的設(shè)置消息之后,再將該設(shè)置消息發(fā)送至widget宿主應(yīng)用,該widget宿主應(yīng)用再將接收的設(shè)置消息轉(zhuǎn)發(fā)至widget應(yīng)用。這樣,widget應(yīng)用可以根據(jù)接收的設(shè)置消息,選擇哪些需發(fā)送給widget宿主應(yīng)用的消息,哪些不需要發(fā)送給widget宿主應(yīng)用的消息,widget應(yīng)用通過將從云服務(wù)器獲取的信息過濾后,再將過濾后的信息發(fā)送給widget宿主應(yīng)用。
[0042]優(yōu)選地,本發(fā)明實施例中,widget宿主應(yīng)用、div容器、widget應(yīng)用之間的通信接口為mozSetting。該mozS