本發(fā)明涉及即時通信技術(shù)領(lǐng)域,特別是涉及一種即時消息處理方法和裝置。
背景技術(shù):
即時通信是指能夠即時發(fā)送和接收互聯(lián)網(wǎng)消息等的業(yè)務(wù),隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,即時通信的功能日益豐富,逐漸集成了電子郵件、博客、音樂、電視、游戲和搜索等多種功能。用戶在個人計算機(jī)或者手機(jī)上安裝即時通信應(yīng)用并登錄,便可以彼此發(fā)送即時消息,以及進(jìn)行其它即時互動。
目前,即時消息是按照會話進(jìn)行組織的,在與特定的會話對象的會話過程中,產(chǎn)生的即時消息會顯示在特定的會話頁面中;若要查看與其它會話對象會話的即時消息,則需要手動切換到相應(yīng)會話對象的會話頁面才能查看,操作不方便。對于只有少數(shù)會話對象的用戶來說問題可能不是很明顯,但對于會話對象較多的活躍用戶,比如在線客戶服務(wù)人員或者在線售后支持人員來說,查看即時消息需要不斷在不同的會話頁面間進(jìn)行切換,很可能會遺漏一些重要的即時消息。
因此,目前即時消息的展示方式,存在因有多個會話對象而導(dǎo)致切換會話頁面操作繁瑣、操作不便利的問題。
技術(shù)實現(xiàn)要素:
基于此,有必要針對上述問題,提供一種當(dāng)有多個會話對象時查看即時消息操作簡單而且便利的即時消息處理方法和裝置。
一種即時消息處理方法,所述方法包括:
接收即時消息;
緩存接收到的即時消息;
顯示正在會話的會話對象對應(yīng)的會話頁面;
顯示即時消息預(yù)覽區(qū)域,所述即時消息預(yù)覽區(qū)域在所述會話頁面被切換時 仍保持顯示;
將緩存的即時消息輪流在所述即時消息預(yù)覽區(qū)域中進(jìn)行展示。
一種即時消息處理裝置,所述裝置包括:
接收模塊,用于接收即時消息;
緩存模塊,用于緩存接收到的即時消息;
會話頁面處理模塊,用于顯示正在會話的會話對象對應(yīng)的會話頁面;
預(yù)覽區(qū)域顯示模塊,用于顯示即時消息預(yù)覽區(qū)域,所述即時消息預(yù)覽區(qū)域在所述會話頁面被切換時仍保持顯示;
預(yù)覽展示模塊,用于將緩存的即時消息輪流在所述即時消息預(yù)覽區(qū)域中進(jìn)行展示。
上述即時消息處理方法和裝置,顯示正在會話的會話對象對應(yīng)的會話頁面時,也會顯示即時消息預(yù)覽區(qū)域,該即時消息預(yù)覽區(qū)域不隨著會話頁面的切換而消失,在會話頁面被切換時始終保持顯示。將接收到的即時消息緩存下來,輪流地在即時消息預(yù)覽區(qū)域中進(jìn)行展示。這樣用戶在會話過程中,可以在任意會話對象的會話頁面下通過始終顯示的即時消息預(yù)覽區(qū)域預(yù)覽輪流展示的接收到的即時消息,用戶可以不必手動去切換會話頁面,當(dāng)有多個會話對象時查看即時消息操作簡單而且便利。
附圖說明
圖1為一個實施例中即時消息處理系統(tǒng)的應(yīng)用環(huán)境圖;
圖2為一個實施例中用于實現(xiàn)即時消息處理方法的終端的結(jié)構(gòu)框圖;
圖3為一個實施例中即時消息處理方法的流程示意圖;
圖4為一個實施例中終端顯示的合并的會話頁面的示意圖;
圖5為一個實施例中終端顯示的合并的會話頁面以及即時消息預(yù)覽區(qū)域的示意圖;
圖6為一個實施例中通過即時消息預(yù)覽區(qū)域中展示的即時消息切換到相應(yīng) 會話頁面的步驟的流程示意圖;
圖7為一個實施例中將緩存的即時消息輪流在即時消息預(yù)覽區(qū)域中進(jìn)行展示的步驟的流程示意圖;
圖8為一個實施例中終端在即時消息預(yù)覽區(qū)域中對可播放媒體數(shù)據(jù)進(jìn)行展示的示意圖;
圖9為一個具體應(yīng)用場景中在將緩存的即時消息輪流在即時消息預(yù)覽區(qū)域中進(jìn)行展示的示意圖;
圖10為一個實施例中即時消息處理裝置的結(jié)構(gòu)框圖;
圖11為另一個實施例中即時消息處理裝置的結(jié)構(gòu)框圖;
圖12為一個實施例中預(yù)覽展示模塊的結(jié)構(gòu)框圖;
圖13為另一個實施例中預(yù)覽展示模塊的結(jié)構(gòu)框圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,在一個實施例中,提供了一種即時消息處理系統(tǒng),包括多個終端102和與終端102通過網(wǎng)絡(luò)連接的服務(wù)器104,多個終端102如圖1中的終端102a和終端102b。其中終端102包括臺式計算機(jī)和移動終端,移動終端包括智能手機(jī)、平板電腦、個人數(shù)字助理(PDA)以及膝上型便攜計算機(jī)中的至少一種。服務(wù)器104可以是獨立的物理服務(wù)器,也可以是物理服務(wù)器的集群。
如圖2所示,在一個實施例中,終端102包括通過系統(tǒng)總線連接的處理器、非易失性存儲介質(zhì)、內(nèi)存儲器、網(wǎng)絡(luò)接口以及顯示屏。其中處理器具有計算功能和控制102工作的功能,該處理器被配置為執(zhí)行一種即時消息處理方法。非易失性存儲介質(zhì)包括磁存儲介質(zhì)、光存儲介質(zhì)和閃存式存儲介質(zhì)中的至少一種,非易失性存儲介質(zhì)存儲有操作系統(tǒng)和即時消息處理裝置。該即時消息處理裝置用于實現(xiàn)一種即時消息處理方法。網(wǎng)絡(luò)接口用于連接到服務(wù)器104進(jìn)行通信。顯示屏包括液晶顯示屏、柔性顯示屏和電子墨水顯示屏中的至少一種。輸入裝 置包括物理按鈕、軌跡球、觸控板以及與顯示屏重疊的觸控層中的至少一種,其中觸控層與顯示屏組合形成觸控屏。
如圖3所示,在一個實施例中,提供了一種即時消息處理方法,本實施例以該方法應(yīng)用于上述圖1中的終端102a來舉例說明,本實施例中將發(fā)送即時消息到終端102a的終端102b稱為終端102a的對端,簡稱對端。終端102a和終端102b上均運(yùn)行有即時通信應(yīng)用,終端102a通過該即時通信應(yīng)用來實現(xiàn)本實施例的即時消息處理方法,即時通信應(yīng)用是指具有即時通信功能的應(yīng)用,還可以具有其它功能,比如UGC分享以及網(wǎng)絡(luò)相冊等功能。該方法具體包括如下步驟:
步驟302,接收即時消息。
具體地,終端通過即時通信應(yīng)用接收即時消息,即時消息可以來自用戶的好友、陌生人、用戶所加入群組的群組成員以及其它匿名用戶。即時消息可以經(jīng)過加密。即時消息可以包括消息發(fā)送者的標(biāo)識、消息接收者的標(biāo)識以及消息內(nèi)容。其中消息內(nèi)容可以包括文本信息、語音數(shù)據(jù)、視頻地址、網(wǎng)址鏈接、表情圖片、動畫數(shù)據(jù)以及結(jié)構(gòu)化消息中的至少一種。即時消息還可以包括消息內(nèi)容類型,消息內(nèi)容類型包括:純文本消息內(nèi)容類型和語音消息內(nèi)容類型。
步驟304,緩存接收到的即時消息。
具體地,終端可按照接收到即時消息的接收時間的先后順序緩存接收到的即時消息。終端可將即時消息緩存到一個先入先出的即時消息隊列。終端也可以將接收到的即時消息按照消息內(nèi)容類型分類緩存到內(nèi)存儲器中。終端也可以按照消息發(fā)送者的標(biāo)識將接收到的即時消息分類緩存到內(nèi)存儲器中。
步驟306,顯示正在會話的會話對象對應(yīng)的會話頁面。
具體地,會話是指會話參與者進(jìn)行即時消息的發(fā)送和/或接收的過程。在服務(wù)器上注冊的用戶之間便可以根據(jù)雙方需求建立會話。按照會話參與者的數(shù)量進(jìn)行劃分,會話可以是一對一的雙人會話或者群組成員之間進(jìn)行的群組會話。群組包括多個群組成員,用來表示該群組中群組成員之間的網(wǎng)絡(luò)社交關(guān)系,通過群組可以實現(xiàn)群組成員之間的多方即時通信以及多方資源共享。群組包括即時通信群組、討論組、語音通話群組以及視頻通話群組中的至少一種。一個群組可以用一個群組標(biāo)識來唯一表示。
按照會話參與者之間的關(guān)系,會話可以是建立了網(wǎng)絡(luò)社交關(guān)系的社交好友之間的熟人會話、隨機(jī)匹配的匿名會話或者臨時建立的臨時會話。其中熟人會話比如從好友列表中選擇好友所建立的會話,臨時會話比如從用戶加入的某群組中選擇一個群組成員而臨時建立的會話,臨時會話也可以是用戶與客戶服務(wù)人員或者與在線售后支持人員建立的會話?;蛘哂脩舯旧硎强蛻舴?wù)人員或者在線售后支持人員,應(yīng)對端的請求而建立會話。在其它實施例中,按照會話中允許的即時消息類型,會話可以是純文本會話、語音會話或者圖文混合會話。
終端通過即時通信應(yīng)用顯示正在會話的會話對象對應(yīng)的會話頁面,會話對象是可以在該會話中向用戶發(fā)來即時消息的對端用戶。會話對象對應(yīng)的會話頁面用于顯示在會話過程中產(chǎn)生的即時消息,在會話過程中產(chǎn)生的即時消息包括在該會話中接收到的即時消息以及在該會話中發(fā)出的即時消息。
參照如圖4所示的會話頁面,會話頁面至少包括即時消息展示區(qū)域401和消息回復(fù)功能區(qū)域402,其中即時消息展示區(qū)域401用于展示在會話過程中產(chǎn)生的即時消息,而消息回復(fù)功能區(qū)域402則用于根據(jù)編輯指令生成即時消息并觸發(fā)向?qū)Χ税l(fā)送生成的即時消息。
在一個實施例中,終端可顯示合并的會話頁面,合并的會話頁面是不同的會話對象對應(yīng)的會話頁面合并后的會話頁面,合并的會話頁面可在同一時刻僅顯示正在會話的會話對象對應(yīng)的會話頁面,終端可根據(jù)頁面切換指令在不同對象對應(yīng)的會話頁面之間切換。
參照圖4,合并的會話頁面包括頁面導(dǎo)航區(qū)域403,頁面導(dǎo)航區(qū)域403包括與不同的會話對象一一對應(yīng)的頁面標(biāo)簽,頁面標(biāo)簽中包括會話對象的識別信息,頁面導(dǎo)航區(qū)域403中與正在顯示的會話頁面對應(yīng)的頁面標(biāo)簽被標(biāo)記為正在會話,終端根據(jù)對頁面導(dǎo)航區(qū)域403中的頁面標(biāo)簽的操作而觸發(fā)頁面切換指令。頁面導(dǎo)航區(qū)域403可與合并的會話頁面鄰接或者相分離。
舉例說明,合并的會話頁面正在顯示好友A對應(yīng)的會話頁面,且頁面導(dǎo)航區(qū)域403中標(biāo)記好友A的頁面標(biāo)簽為高亮,表示正在與好友A會話;當(dāng)用戶點擊頁面導(dǎo)航區(qū)域403中討論組D的頁面標(biāo)簽時,討論組D的頁面標(biāo)簽被標(biāo)記為高亮,合并的會話頁面則會切換到討論組D的會話頁面。
步驟308,顯示即時消息預(yù)覽區(qū)域,即時消息預(yù)覽區(qū)域在會話頁面被切換時仍保持顯示。
具體地,參照圖5,終端可顯示與顯示的會話頁面相鄰接的即時消息預(yù)覽區(qū)域501,在其它實施例中即時消息預(yù)覽區(qū)域也可以與顯示的會話頁面相分離。即時消息預(yù)覽區(qū)域用于實現(xiàn)對接收到的即時消息的預(yù)覽展示,即時消息預(yù)覽區(qū)域可以不具備消息回復(fù)功能。即時消息預(yù)覽區(qū)域是可獨立操作的區(qū)域,具體可被單獨關(guān)閉或者移動而不影響會話頁面的顯示。即時消息預(yù)覽區(qū)域具體可以是窗口或者浮動圖層。在一個實施例中,步驟306至步驟308可以在步驟302至步驟304之前執(zhí)行。
在一個實施例中,若顯示的是合并的會話頁面,則可以在顯示合并的會話頁面時一直顯示即時消息預(yù)覽區(qū)域,即使會話頁面被切換也仍然顯示。若顯示的是獨立的會話頁面,則可以在每個獨立的會話頁面周圍或者鄰接地顯示相應(yīng)的即時消息預(yù)覽區(qū)域,或者僅在獲得焦點的會話頁面周圍或者鄰接地顯示即時消息預(yù)覽區(qū)域。
步驟310,將緩存的即時消息輪流在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
具體地,終端可輪流地逐條從緩存中讀取即時消息,并將讀取的即時消息在即時消息預(yù)覽區(qū)域中進(jìn)行展示。展示完畢后再檢測緩存中是否還存在緩存的即時消息,如果存在則繼續(xù)從緩存中讀取下一條即時消息;如果不存在則等待,直至檢測到緩存中存在緩存的即時消息時,繼續(xù)從緩存中讀取即時消息。所謂輪流是指依照次序一個接替一個,具體可隨機(jī)逐條讀取緩存的即時消息在即時消息預(yù)覽區(qū)域中進(jìn)行展示,也可以按照即時消息的接收時間從緩存中讀取緩存的即時消息在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
終端在即時消息預(yù)覽區(qū)域中展示即時消息時,具體可解析緩存的即時消息而獲得消息發(fā)送者的標(biāo)識和消息內(nèi)容,根據(jù)消息發(fā)送者的標(biāo)識在即時消息預(yù)覽區(qū)域中展示消息發(fā)送者的識別信息,并在在即時消息預(yù)覽區(qū)域中對消息內(nèi)容進(jìn)行展示。
在一個實施例中,對即時消息預(yù)覽區(qū)域的控制與對會話頁面的控制相分離,具體即時消息預(yù)覽區(qū)域通過獨立的線程進(jìn)行控制,通過該獨立的線程顯示即時 消息預(yù)覽區(qū)域,并將緩存的即時消息輪流在即時消息預(yù)覽區(qū)域中進(jìn)行展示。對會話頁面的控制可以采用即時通信應(yīng)用原有的邏輯進(jìn)行控制。這樣對即時消息預(yù)覽區(qū)域的控制不會對會話頁面的控制產(chǎn)生影響,即時通信應(yīng)用不需要更改原有的邏輯,而只需要增加一個獨立的線程便可以實現(xiàn)。
上述即時消息處理方法,顯示正在會話的會話對象對應(yīng)的會話頁面時,也會顯示即時消息預(yù)覽區(qū)域,該即時消息預(yù)覽區(qū)域不隨著會話頁面的切換而消失,在會話頁面被切換時始終保持顯示。將接收到的即時消息緩存下來,輪流地在即時消息預(yù)覽區(qū)域中進(jìn)行展示。這樣用戶在會話過程中,可以在任意會話對象的會話頁面下通過始終顯示的即時消息預(yù)覽區(qū)域預(yù)覽輪流展示的接收到的即時消息,用戶可以不必手動去切換會話頁面,當(dāng)有多個會話對象時查看即時消息操作簡單而且便利。
如圖6所示,在一個實施例中,該即時消息處理方法還包括通過即時消息預(yù)覽區(qū)域中展示的即時消息切換到相應(yīng)會話頁面的步驟,具體包括如下步驟:
步驟602,在即時消息預(yù)覽區(qū)域中顯示會話觸發(fā)控件。
具體地,如圖5所示,終端在即時消息預(yù)覽區(qū)域中顯示用于觸發(fā)進(jìn)入會話頁面的會話觸發(fā)控件502,該會話觸發(fā)控件502可以是按鈕、文字鏈接或者圖標(biāo)的形式。若即時消息預(yù)覽區(qū)域中顯示有即時消息,則會話觸發(fā)控件處于可操作狀態(tài);若即時消息預(yù)覽區(qū)域中未顯示即時消息,則會話觸發(fā)控件處于不可操作狀態(tài)??刹僮鳡顟B(tài)和不可操作狀態(tài)可通過不同的顏色對會話觸發(fā)控件進(jìn)行標(biāo)識。
步驟604,檢測對會話觸發(fā)控件的預(yù)設(shè)操作。
具體地,可檢測光標(biāo)或者觸控點所觸發(fā)的對會話觸發(fā)控件的預(yù)設(shè)操作。預(yù)設(shè)操作可以是點擊操作、雙擊操作、長按操作或者滑動操作等中的至少一種。預(yù)設(shè)操作可以是默認(rèn)的,也可以由用戶自定義設(shè)置。
步驟606,若檢測到預(yù)設(shè)操作,則將會話頁面切換至即時消息預(yù)覽區(qū)域中正在展示的即時消息所屬會話的會話頁面。
具體地,終端如果檢測到用戶對會話觸發(fā)控件的預(yù)設(shè)操作,則確定即時消息預(yù)覽區(qū)域中當(dāng)前正在顯示的即時消息所來自的會話對象,從而將顯示的會話頁面切換到相應(yīng)的會話對象所屬的會話頁面,該會話頁面也就是正在展示的即 時消息所屬會話的會話頁面。如果正在展示的即時消息所屬會話的會話頁面未打開,則打開相應(yīng)的會話頁面加入到合并的會話頁面并顯示。終端如果未檢測到對會話觸發(fā)控件的預(yù)設(shè)操作則繼續(xù)檢測。
舉例說明,參照圖5,終端在即時消息預(yù)覽區(qū)域501中正在展示來自好友B的即時消息,同時展示會話觸發(fā)控件502,當(dāng)光標(biāo)點擊該會話觸發(fā)控件502時將正在顯示的好友A的會話頁面切換到好友B的會話頁面。假設(shè)合并的會話頁面中不存在好友B的會話頁面,則會打開好友B的會話頁面并加入到圖5中合并的會話頁面中并顯示。
本實施例中,用戶在預(yù)覽即時消息的過程中,如果發(fā)現(xiàn)需要對展示的即時消息進(jìn)行進(jìn)一步操作時,便可以操作即時消息預(yù)覽區(qū)域中顯示的會話觸發(fā)控件進(jìn)入相應(yīng)的會話頁面進(jìn)行操作,比如回復(fù)即時消息或者發(fā)起視頻通話等。這樣用戶不僅可以預(yù)覽即時消息還可以對即時消息進(jìn)行進(jìn)一步操作,進(jìn)一步提高了操作便利性。
在一個實施例中,步驟304包括:將接收到的即時消息按照接收時間的先后順序,依次緩存到先入先出的即時消息隊列;步驟310包括:依次從即時消息隊列的隊首提取即時消息并在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
具體地,先入先出的即時消息隊列是指先進(jìn)入到即時消息隊列的消息,在從即時消息隊列中提取即時消息時也會優(yōu)先被提取出。按照接收到的即時消息的接收時間從早到晚的先后順序,依次將接收到的即時消息加入到即時消息隊列的隊尾。終端在執(zhí)行步驟310時依次從即時消息隊列的隊首提取即時消息,每次提取一條即時消息,并在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
本實施例中,通過即時消息隊列來管理接收到的即時消息,該即時消息隊列可以反映出接收到即時消息的時間先后順序以及輪流展示時的先后順序,從而將先接收到的即時消息優(yōu)先顯示,符合用戶閱讀習(xí)慣,使用戶在預(yù)覽即時消息時也可以了解到接收到即時消息的時間先后。
如圖7所示,在一個實施例中,步驟310具體包括如下步驟:
步驟702,依次讀取緩存的即時消息。
具體地,終端可從即時消息隊列隊首依次讀取即時消息,可每次讀取一條。 在一個實施例中,終端可讀取按照消息內(nèi)容類型分類緩存的即時消息,可每次讀取一類中的一條。在一個實施例中,終端可讀取按照消息發(fā)送者的標(biāo)識分類緩存的即時消息,每次讀取一類中的一條。
步驟704,解析讀取的即時消息,獲得消息內(nèi)容。
具體地,即時消息按照預(yù)定義的協(xié)議傳輸,終端將讀取的即時消息按照預(yù)定義的協(xié)議進(jìn)行解析,可獲得消息發(fā)送者的標(biāo)識和消息內(nèi)容。其中消息發(fā)送者的標(biāo)識可以是對端用戶的用戶標(biāo)識。即時消息可以經(jīng)過加密,從而可以對即時消息解析后進(jìn)行解密,獲得消息內(nèi)容。在一個實施例中,若解析獲得的消息發(fā)送者的標(biāo)識與正在會話的對象匹配,則可直接返回步驟702。
步驟706,若消息內(nèi)容為靜態(tài)可視內(nèi)容,則在即時消息預(yù)覽區(qū)域中直接顯示消息內(nèi)容。
具體地,終端解析即時消息可以獲得消息內(nèi)容類型和消息內(nèi)容,可以根據(jù)消息內(nèi)容類型來判斷消息內(nèi)容為靜態(tài)可視內(nèi)容還是可播放媒體數(shù)據(jù),從而根據(jù)判斷結(jié)果對消息內(nèi)容進(jìn)行不同的展示。靜態(tài)可視內(nèi)容是指不隨著時間變化而變化的可被人眼察覺的內(nèi)容,比如文本或靜態(tài)圖片。
在一個實施例中,若消息內(nèi)容為靜態(tài)可視內(nèi)容,則在開始顯示消息內(nèi)容起的預(yù)設(shè)時長之后繼續(xù)讀取緩存的即時消息進(jìn)行處理。具體地,終端上獨立運(yùn)行的線程在開始顯示即時消息時從0開始計時,如果計時達(dá)到預(yù)設(shè)時長,則停止顯示該即時消息,并返回到步驟702繼續(xù)執(zhí)行。預(yù)設(shè)時長可以根據(jù)需要設(shè)置,比如3秒。
步驟708,若消息內(nèi)容包括可播放媒體數(shù)據(jù)或相應(yīng)的播放地址,則顯示播放觸發(fā)控件,并在檢測到對播放觸發(fā)控件的預(yù)設(shè)操作時在即時消息預(yù)覽區(qū)域中播放消息內(nèi)容。
其中,可播放媒體數(shù)據(jù)包括視頻數(shù)據(jù)和音頻數(shù)據(jù),音頻數(shù)據(jù)包括語音數(shù)據(jù)。參照圖8,終端可在即時消息預(yù)覽區(qū)域801中顯示播放觸發(fā)控件802,播放觸發(fā)控件802用于觸發(fā)對即時消息的播放。如果消息內(nèi)容為音頻數(shù)據(jù),則終端可調(diào)用終端的音頻驅(qū)動程序解析音頻數(shù)據(jù)并輸出音頻信號,具體可輸出至揚(yáng)聲器或者耳機(jī)。如果消息內(nèi)容為視頻數(shù)據(jù),則終端可將視頻數(shù)據(jù)的圖像幀按照視頻數(shù) 據(jù)的幀率在即時消息預(yù)覽區(qū)域801中逐幀顯示。
在一個實施例中,若播放觸發(fā)控件超過預(yù)定義時長未被操作則繼續(xù)返回上述步驟702。在一個實施例中,終端可顯示視頻數(shù)據(jù)的一幀圖像803并顯示播放觸發(fā)控件。在一個實施例中,若消息內(nèi)容包括可播放媒體數(shù)據(jù)或相應(yīng)的播放地址,則終端可直接在即時消息預(yù)覽區(qū)域中播放消息內(nèi)容到播放結(jié)束。
在一個實施例中,若消息內(nèi)容包括可播放媒體數(shù)據(jù)或相應(yīng)的播放地址,則在播放結(jié)束起的預(yù)設(shè)時長之后繼續(xù)讀取緩存的即時消息進(jìn)行處理。具體地,終端上獨立運(yùn)行的線程在播放消息內(nèi)容結(jié)束時從0開始計時,如果計時達(dá)到預(yù)設(shè)時長,則返回到步驟702繼續(xù)執(zhí)行。預(yù)設(shè)時長可以根據(jù)需要設(shè)置,比如3秒。
在一個實施例中,若消息內(nèi)容包括網(wǎng)址鏈接,則終端可根據(jù)網(wǎng)址鏈接拉取相應(yīng)的網(wǎng)頁內(nèi)容并縮小后顯示在即時消息預(yù)覽區(qū)域中,或者可以根據(jù)網(wǎng)址鏈接拉取部分網(wǎng)頁內(nèi)容顯示在即時消息預(yù)覽區(qū)域中。
本實施例中,按照即時消息中消息內(nèi)容類型的不同,對即時消息分別進(jìn)行不同形式的預(yù)覽展示,這樣可以對不同的即時消息按照合適的展示形式進(jìn)行展示,使用戶在預(yù)覽即時消息時能夠準(zhǔn)確、及時地獲取到即時消息所要傳遞的信息。
下面用一個具體應(yīng)用場景來說明上述即時消息處理方法的原理,本應(yīng)用場景中會話頁面為會話窗口。具體參照圖9,合并的會話窗口中,當(dāng)前會話窗口是與好友A的會話窗口,好友B、群C、以及討論組D、E、F的窗口標(biāo)簽顯示在會話窗口左側(cè)的窗口導(dǎo)航區(qū)域中。線程獲取到好友B發(fā)來的即時消息1,并把該即時消息1塞入到即時消息隊列中。即時通信應(yīng)用檢測到即時消息隊列中有即時消息,則取出隊首的即時消息1,并展示在會話窗口上方的即時消息預(yù)覽區(qū)域中。用戶可點擊“進(jìn)入”按鈕進(jìn)入與好友B的會話窗口里。即時消息1是文本消息,展示的時間是3秒,在3秒時間內(nèi),線程獲取到群C的一條即時消息2和討論組D的一條即時消息3,并把即時消息2和即時消息3都塞到即時消息隊列中。在展示即時消息1達(dá)到3秒后,即時通信應(yīng)用檢測到即時消息隊列中有即時消息,取出隊首的即時消息2,并展示在會話窗口上方的即時消息預(yù)覽區(qū)域中。用戶可點擊“進(jìn)入”按鈕進(jìn)入與群C的會話窗口里。即時消息2是語音 消息,線程顯示語音觸發(fā)控件,用戶點擊該語音觸發(fā)控件,聽取即時消息2。在語音消息播放完之后3秒,線程又在消息隊列中取出即時消息3并展示,用戶可點擊“進(jìn)入”按鈕進(jìn)入與討論組D的會話窗口里。即時消息3展示了3秒后,即時通信應(yīng)用檢測到即時消息隊列中已經(jīng)沒有即時消息,將即時消息預(yù)覽區(qū)域中的進(jìn)入按鈕置為不可操作狀態(tài)。這樣,用戶在不用點開好友B的會話窗口、群C的會話窗口以及討論組D的會話窗口,就能看到這三個會話窗口中的即時消息。
如圖10所示,在一個實施例中,提供了一種即時消息處理裝置1000,包括:接收模塊1010、緩存模塊1020、會話頁面處理模塊1030、預(yù)覽區(qū)域顯示模塊1040和預(yù)覽展示模塊1050。
接收模塊1010,用于接收即時消息。
具體地,接收模塊1010用于通過即時通信應(yīng)用接收即時消息,即時消息可以來自用戶的好友、陌生人、用戶所加入群組的群組成員以及其它匿名用戶。即時消息可以經(jīng)過加密。即時消息可以包括消息發(fā)送者的標(biāo)識、消息接收者的標(biāo)識以及消息內(nèi)容。其中消息內(nèi)容可以包括文本信息、語音數(shù)據(jù)、視頻地址、網(wǎng)址鏈接、表情圖片以及動畫數(shù)據(jù)中的至少一種。即時消息還可以包括消息內(nèi)容類型,消息內(nèi)容類型包括:純文本消息內(nèi)容類型和語音消息內(nèi)容類型。
緩存模塊1020,用于緩存接收到的即時消息。
具體地,緩存模塊1020可用于按照接收到即時消息的接收時間的先后順序緩存接收到的即時消息。緩存模塊1020可用于將即時消息緩存到一個先入先出的即時消息隊列。緩存模塊1020可用于將接收到的即時消息按照消息內(nèi)容類型分類緩存到內(nèi)存儲器中。緩存模塊1020可用于按照消息發(fā)送者的標(biāo)識將接收到的即時消息分類緩存到內(nèi)存儲器中。
會話頁面處理模塊1030,用于顯示正在會話的會話對象對應(yīng)的會話頁面。
具體地,會話是指會話參與者進(jìn)行即時消息的發(fā)送和/或接收的過程。在服務(wù)器上注冊的用戶之間便可以根據(jù)雙方需求建立會話。按照會話參與者的數(shù)量進(jìn)行劃分,會話可以是一對一的雙人會話或者群組成員之間進(jìn)行的群組會話。 群組包括多個群組成員,用來表示該群組中群組成員之間的網(wǎng)絡(luò)社交關(guān)系,通過群組可以實現(xiàn)群組成員之間的多方即時通信以及多方資源共享。群組包括即時通信群組、討論組、語音通話群組以及視頻通話群組中的至少一種。一個群組可以用一個群組標(biāo)識來唯一表示。
按照會話參與者之間的關(guān)系,會話可以是建立了網(wǎng)絡(luò)社交關(guān)系的社交好友之間的熟人會話、隨機(jī)匹配的匿名會話或者臨時建立的臨時會話。其中熟人會話比如從好友列表中選擇好友所建立的會話,臨時會話比如從用戶加入的某群組中選擇一個群組成員而臨時建立的會話,臨時會話也可以是用戶與客戶服務(wù)人員或者與在線售后支持人員建立的會話?;蛘哂脩舯旧硎强蛻舴?wù)人員或者在線售后支持人員,應(yīng)對端的請求而建立會話。在其它實施例中,按照會話中允許的即時消息類型,會話可以是純文本會話、語音會話或者圖文混合會話。
會話頁面處理模塊1030可用于通過即時通信應(yīng)用顯示正在會話的會話對象對應(yīng)的會話頁面,會話對象是可以在該會話中向用戶發(fā)來即時消息的對端用戶。會話對象對應(yīng)的會話頁面用于顯示在會話過程中產(chǎn)生的即時消息,在會話過程中產(chǎn)生的即時消息包括在該會話中接收到的即時消息以及在該會話中發(fā)出的即時消息。
參照如圖4所示的會話頁面,會話頁面至少包括即時消息展示區(qū)域401和消息回復(fù)功能區(qū)域402,其中即時消息展示區(qū)域401用于展示在會話過程中產(chǎn)生的即時消息,而消息回復(fù)功能區(qū)域402則用于根據(jù)編輯指令生成即時消息并觸發(fā)向?qū)Χ税l(fā)送生成的即時消息。
在一個實施例中,會話頁面處理模塊1030可用于顯示合并的會話頁面,合并的會話頁面是不同的會話對象對應(yīng)的會話頁面合并后的會話頁面,合并的會話頁面可在同一時刻僅顯示正在會話的會話對象對應(yīng)的會話頁面,終端可根據(jù)頁面切換指令在不同對象對應(yīng)的會話頁面之間切換。
參照圖4,合并的會話頁面包括頁面導(dǎo)航區(qū)域403,頁面導(dǎo)航區(qū)域403包括與不同的會話對象一一對應(yīng)的頁面標(biāo)簽,頁面標(biāo)簽中包括會話對象的識別信息,頁面導(dǎo)航區(qū)域403中與正在顯示的會話頁面對應(yīng)的頁面標(biāo)簽被標(biāo)記為正在會話,終端根據(jù)對頁面導(dǎo)航區(qū)域403中的頁面標(biāo)簽的操作而觸發(fā)頁面切換指令。頁面 導(dǎo)航區(qū)域403可與合并的會話頁面鄰接或者相分離。
預(yù)覽區(qū)域顯示模塊1040,用于顯示即時消息預(yù)覽區(qū)域,即時消息預(yù)覽區(qū)域在會話頁面被切換時仍保持顯示。
具體地,參照圖5,預(yù)覽區(qū)域顯示模塊1040可用于顯示與顯示的會話頁面相鄰接的即時消息預(yù)覽區(qū)域501,在其它實施例中即時消息預(yù)覽區(qū)域也可以與顯示的會話頁面相分離。即時消息預(yù)覽區(qū)域用于實現(xiàn)對接收到的即時消息的預(yù)覽展示,即時消息預(yù)覽區(qū)域可以不具備消息回復(fù)功能。即時消息預(yù)覽區(qū)域是可獨立操作的區(qū)域,具體可被單獨關(guān)閉或者移動而不影響會話頁面的顯示。即時消息預(yù)覽區(qū)域具體可以是窗口或者浮動圖層。
在一個實施例中,若顯示的是合并的會話頁面,則預(yù)覽區(qū)域顯示模塊1040可用于在顯示合并的會話頁面時一直顯示即時消息預(yù)覽區(qū)域,即使會話頁面被切換也仍然顯示。若顯示的是獨立的會話頁面,則預(yù)覽區(qū)域顯示模塊1040可用于在每個獨立的會話頁面周圍或者鄰接地顯示相應(yīng)的即時消息預(yù)覽區(qū)域,或者僅在獲得焦點的會話頁面周圍或者鄰接地顯示即時消息預(yù)覽區(qū)域。
預(yù)覽展示模塊1050,用于將緩存的即時消息輪流在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
具體地,預(yù)覽展示模塊1050可用于輪流地逐條從緩存中讀取即時消息,并將讀取的即時消息在即時消息預(yù)覽區(qū)域中進(jìn)行展示。展示完畢后再檢測緩存中是否還存在緩存的即時消息,如果存在則繼續(xù)從緩存中讀取下一條即時消息;如果不存在則等待,直至檢測到緩存中存在緩存的即時消息時,繼續(xù)從緩存中讀取即時消息。所謂輪流是指依照次序一個接替一個,具體預(yù)覽展示模塊1050可隨機(jī)逐條讀取緩存的即時消息在即時消息預(yù)覽區(qū)域中進(jìn)行展示,也可以按照即時消息的接收時間從緩存中讀取緩存的即時消息在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
預(yù)覽展示模塊1050具體可用于解析緩存的即時消息而獲得消息發(fā)送者的標(biāo)識和消息內(nèi)容,根據(jù)消息發(fā)送者的標(biāo)識在即時消息預(yù)覽區(qū)域中展示消息發(fā)送者的識別信息,并在在即時消息預(yù)覽區(qū)域中對消息內(nèi)容進(jìn)行展示。
在一個實施例中,對即時消息預(yù)覽區(qū)域的控制與對會話頁面的控制相分離, 具體即時消息預(yù)覽區(qū)域通過獨立的線程進(jìn)行控制,通過該獨立的線程顯示即時消息預(yù)覽區(qū)域,并將緩存的即時消息輪流在即時消息預(yù)覽區(qū)域中進(jìn)行展示。對會話頁面的控制可以采用即時通信應(yīng)用原有的邏輯進(jìn)行控制。這樣對即時消息預(yù)覽區(qū)域的控制不會對會話頁面的控制產(chǎn)生影響,即時通信應(yīng)用不需要更改原有的邏輯,而只需要增加一個獨立的線程便可以實現(xiàn)。
上述即時消息處理裝置1000,顯示正在會話的會話對象對應(yīng)的會話頁面時,也會顯示即時消息預(yù)覽區(qū)域,該即時消息預(yù)覽區(qū)域不隨著會話頁面的切換而消失,在會話頁面被切換時始終保持顯示。將接收到的即時消息緩存下來,輪流地在即時消息預(yù)覽區(qū)域中進(jìn)行展示。這樣用戶在會話過程中,可以在任意會話對象的會話頁面下通過始終顯示的即時消息預(yù)覽區(qū)域預(yù)覽輪流展示的接收到的即時消息,用戶可以不必手動去切換會話頁面,當(dāng)有多個會話對象時查看即時消息操作簡單而且便利。
如圖11所示,在一個實施例中,即時消息處理裝置1000還包括:控件顯示模塊1060、操作檢測模塊1070和會話頁面切換模塊1080。
控件顯示模塊1060,用于在即時消息預(yù)覽區(qū)域中顯示會話觸發(fā)控件。
具體地,如圖5所示,控件顯示模塊1060可用于在即時消息預(yù)覽區(qū)域中顯示用于觸發(fā)進(jìn)入會話頁面的會話觸發(fā)控件502,該會話觸發(fā)控件502可以是按鈕、文字鏈接或者圖標(biāo)的形式。若即時消息預(yù)覽區(qū)域中顯示有即時消息,則會話觸發(fā)控件處于可操作狀態(tài);若即時消息預(yù)覽區(qū)域中未顯示即時消息,則會話觸發(fā)控件處于不可操作狀態(tài)??刹僮鳡顟B(tài)和不可操作狀態(tài)可通過不同的顏色對會話觸發(fā)控件進(jìn)行標(biāo)識。
操作檢測模塊1070,用于檢測對會話觸發(fā)控件的預(yù)設(shè)操作。
具體地,操作檢測模塊1070可檢測光標(biāo)或者觸控點所觸發(fā)的對會話觸發(fā)控件的預(yù)設(shè)操作。預(yù)設(shè)操作可以是點擊操作、雙擊操作、長按操作或者滑動操作等中的至少一種。預(yù)設(shè)操作可以是默認(rèn)的,也可以由用戶自定義設(shè)置。
會話頁面切換模塊1080,用于若檢測到預(yù)設(shè)操作,則將會話頁面切換至即時消息預(yù)覽區(qū)域中正在展示的即時消息所屬會話的會話頁面。
具體地,會話頁面切換模塊1080如果檢測到用戶對會話觸發(fā)控件的預(yù)設(shè)操 作,則確定即時消息預(yù)覽區(qū)域中當(dāng)前正在顯示的即時消息所來自的會話對象,從而將顯示的會話頁面切換到相應(yīng)的會話對象所屬的會話頁面,該會話頁面也就是正在展示的即時消息所屬會話的會話頁面。如果正在展示的即時消息所屬會話的會話頁面未打開,則會話頁面切換模塊1080用于打開相應(yīng)的會話頁面加入到合并的會話頁面并顯示。會話頁面切換模塊1080如果未檢測到對會話觸發(fā)控件的預(yù)設(shè)操作則繼續(xù)檢測。
本實施例中,用戶在預(yù)覽即時消息的過程中,如果發(fā)現(xiàn)需要對展示的即時消息進(jìn)行進(jìn)一步操作時,便可以操作即時消息預(yù)覽區(qū)域中顯示的會話觸發(fā)控件進(jìn)入相應(yīng)的會話頁面進(jìn)行操作,比如回復(fù)即時消息或者發(fā)起視頻通話等。這樣用戶不僅可以預(yù)覽即時消息還可以對即時消息進(jìn)行進(jìn)一步操作,進(jìn)一步提高了操作便利性。
在一個實施例中,緩存模塊1020具體用于將接收到的即時消息按照接收時間的先后順序,依次緩存到先入先出的即時消息隊列。
預(yù)覽展示模塊1050具體用于依次從即時消息隊列的隊首提取即時消息并在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
具體地,先入先出的即時消息隊列是指先進(jìn)入到即時消息隊列的消息,在從即時消息隊列中提取即時消息時也會優(yōu)先被提取出。緩存模塊1020用于按照接收到的即時消息的接收時間從早到晚的先后順序,依次將接收到的即時消息加入到即時消息隊列的隊尾。預(yù)覽展示模塊1050用于依次從即時消息隊列的隊首提取即時消息,每次提取一條即時消息,并在即時消息預(yù)覽區(qū)域中進(jìn)行展示。
本實施例中,通過即時消息隊列來管理接收到的即時消息,該即時消息隊列可以反映出接收到即時消息的時間先后順序以及輪流展示時的先后順序,從而將先接收到的即時消息優(yōu)先顯示,符合用戶閱讀習(xí)慣,使用戶在預(yù)覽即時消息時也可以了解到接收到即時消息的時間先后。
如圖12所示,在一個實施例中,預(yù)覽展示模塊1050包括:讀取模塊1051、解析模塊1052、文本消息處理模塊1053和媒體數(shù)據(jù)處理模塊1054。
讀取模塊1051,用于依次讀取緩存的即時消息。
具體地,讀取模塊1051可從即時消息隊列隊首依次讀取即時消息,可每次 讀取一條。在一個實施例中,讀取模塊1051可讀取按照消息內(nèi)容類型分類緩存的即時消息,可每次讀取一類中的一條。在一個實施例中,讀取模塊1051可讀取按照消息發(fā)送者的標(biāo)識分類緩存的即時消息,每次讀取一類中的一條。
解析模塊1052,用于解析讀取的即時消息,獲得消息內(nèi)容。
具體地,即時消息按照預(yù)定義的協(xié)議傳輸,解析模塊1052將讀取的即時消息按照預(yù)定義的協(xié)議進(jìn)行解析,可獲得消息發(fā)送者的標(biāo)識和消息內(nèi)容。其中消息發(fā)送者的標(biāo)識可以是對端用戶的用戶標(biāo)識。即時消息可以經(jīng)過加密,從而可以對即時消息解析后進(jìn)行解密,獲得消息內(nèi)容。
文本消息處理模塊1053,用于若消息內(nèi)容為靜態(tài)可視內(nèi)容,則在即時消息預(yù)覽區(qū)域中直接顯示消息內(nèi)容。
具體地,文本消息處理模塊1053解析即時消息可以獲得消息內(nèi)容類型和消息內(nèi)容,可以根據(jù)消息內(nèi)容類型來判斷消息內(nèi)容為靜態(tài)可視內(nèi)容還是可播放媒體數(shù)據(jù),從而根據(jù)判斷結(jié)果對消息內(nèi)容進(jìn)行不同的展示。靜態(tài)可視內(nèi)容是指不隨著時間變化而變化的可被人眼察覺的內(nèi)容,比如文本或靜態(tài)圖片。
在一個實施例中,若消息內(nèi)容為靜態(tài)可視內(nèi)容,則文本消息處理模塊1053用于在開始顯示消息內(nèi)容起的預(yù)設(shè)時長之后繼續(xù)讀取緩存的即時消息進(jìn)行處理。具體地,獨立運(yùn)行的線程在開始顯示即時消息時從0開始計時,如果計時達(dá)到預(yù)設(shè)時長,則停止顯示該即時消息,并通知讀取模塊1051繼續(xù)讀取緩存的即時消息。
媒體數(shù)據(jù)處理模塊1054,用于若消息內(nèi)容包括可播放媒體數(shù)據(jù)或相應(yīng)的播放地址,則顯示播放觸發(fā)控件,并在檢測到對播放觸發(fā)控件的預(yù)設(shè)操作時在即時消息預(yù)覽區(qū)域中播放消息內(nèi)容。
其中,可播放媒體數(shù)據(jù)包括視頻數(shù)據(jù)和音頻數(shù)據(jù),音頻數(shù)據(jù)包括語音數(shù)據(jù)。參照圖8,媒體數(shù)據(jù)處理模塊1054可在即時消息預(yù)覽區(qū)域801中顯示播放觸發(fā)控件802,播放觸發(fā)控件802用于觸發(fā)對即時消息的播放。如果消息內(nèi)容為音頻數(shù)據(jù),則媒體數(shù)據(jù)處理模塊1054可調(diào)用音頻驅(qū)動程序解析音頻數(shù)據(jù)并輸出音頻信號,具體可輸出至揚(yáng)聲器或者耳機(jī)。如果消息內(nèi)容為視頻數(shù)據(jù),則媒體數(shù)據(jù)處理模塊1054可將視頻數(shù)據(jù)的圖像幀按照視頻數(shù)據(jù)的幀率在即時消息預(yù)覽區(qū)域 801中逐幀顯示。
在一個實施例中,媒體數(shù)據(jù)處理模塊1054用于若播放觸發(fā)控件超過預(yù)定義時長未被操作則通知讀取模塊1051繼續(xù)讀取緩存的即時消息。
在一個實施例中,媒體數(shù)據(jù)處理模塊1054可用于顯示視頻數(shù)據(jù)的一幀圖像803并顯示播放觸發(fā)控件。在一個實施例中,若消息內(nèi)容包括可播放媒體數(shù)據(jù)或相應(yīng)的播放地址,則媒體數(shù)據(jù)處理模塊1054可用于直接在即時消息預(yù)覽區(qū)域中播放消息內(nèi)容到播放結(jié)束。
在一個實施例中,媒體數(shù)據(jù)處理模塊1054可用于若消息內(nèi)容包括可播放媒體數(shù)據(jù)或相應(yīng)的播放地址,則在播放結(jié)束起的預(yù)設(shè)時長之后繼續(xù)讀取緩存的即時消息進(jìn)行處理。具體地,獨立運(yùn)行的線程在播放消息內(nèi)容結(jié)束時從0開始計時,如果計時達(dá)到預(yù)設(shè)時長,則通知讀取模塊1051繼續(xù)讀取緩存的即時消息。預(yù)設(shè)時長可以根據(jù)需要設(shè)置,比如3秒。
如圖13所示,在一個實施例中,預(yù)覽展示模塊還包括網(wǎng)址鏈接處理模塊1055,用于若消息內(nèi)容包括網(wǎng)址鏈接,則終端可根據(jù)網(wǎng)址鏈接拉取相應(yīng)的網(wǎng)頁內(nèi)容并縮小后顯示在即時消息預(yù)覽區(qū)域中,或者可以根據(jù)網(wǎng)址鏈接拉取部分網(wǎng)頁內(nèi)容顯示在即時消息預(yù)覽區(qū)域中。
本實施例中,按照即時消息中消息內(nèi)容類型的不同,對即時消息分別進(jìn)行不同形式的預(yù)覽展示,這樣可以對不同的即時消息按照合適的展示形式進(jìn)行展示,使用戶在預(yù)覽即時消息時能夠準(zhǔn)確、及時地獲取到即時消息所要傳遞的信息。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等非易失性存儲介質(zhì),或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。
以上所述實施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。