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