新四季網

在宿主程序界面中嵌入第三方界面的方法

2023-12-01 07:15:11

專利名稱:在宿主程序界面中嵌入第三方界面的方法
技術領域:
本發明涉及程序界面互相嵌入和交互技術,尤其涉及一種在宿主程序界面中嵌入第三方界面的方法。
背景技術:
在網際網路即時通訊工具(QQ)的業務夥伴(S-BUDDY)應用中,由於S-BUDDY服務商數量眾多,且行業各不相同,因此S-BUDDY服務商對業務受理界面有很強的個性化定製,導致QQ在技術實現上需要支持嵌入第三方定義的程序界面,實現QQ與S-BUDDY服務商界面的無關性,從而將界面的定製能力交給用戶。
目前要在宿主程序(需要嵌入第三方界面的主程序)中實現嵌入第三方界面主要有以下三種方法方法一、在宿主程序的原始碼中調用由第三方的界面ActiveX控制項第三方將其需要的界面封裝為一個獨立的ActiveX控制項,並將該控制項提供給宿主程序,由宿主程序調用該控制項。下面以VC6為例說明宿主程序調用ActiveX控制項的方法1、在宿主程序中,新建一個對話框。
2、執行圖1A所示的文件菜單Project->Add to Project->Components andControls。
3、選取第三方提供的控制項,參閱圖1B。
4、被選中的ActiveX控制項插入到對話框中,參閱圖1C,圖中右部份即為新插入的第三方界面。
5、宿主程序編譯執行,顯示如圖1D所示界面。
該方法存在以下缺點
1、必須修改宿主程序的原始碼才能支持新的界面,雖在技術上可行,但在S-BUDDY中卻不具備實際應用價值;2、第三方界面均需要一個獨立的ActiveX控制項,系統消耗大,當控制項數量很多時管理很複雜;3、一旦ActiveX控制項發布後,該界面就不能再修改,幾乎沒有用戶可定製性;4、新的ActiveX控制項發布後,需要更新所有的宿主程序版本,而S-BUDDY分布在全國各地的個人用戶的機器上,統一更新十分困難,且會造成很大的網絡和設備壓力;5、ActiveX控制項的編寫複雜,需要有很強的技術功底,並利用編程工具才能編寫,起點高,造成普通用戶幾乎不可能製作出自己的界面;6、ActiveX控制項封裝嚴密,宿主程序難以接管其所有其消息,因此其操作結果必須由ActiveX控制項自身來返回給第三方,但第三方界面很多時,協議接口十分複雜,很容易影響到整個系統的穩定性。
方法二、宿主程序使用第三方界面插件(PlugIn)第三方將其需要的界面封裝為一個獨立的插件(PlugIn),並將該控制項提供給宿主程序,由宿主程序調用該插件。下面以VC6本身使用插件的例子來說明該方法1、宿主程序提供插件接口,所有的插件都必須嚴格遵守該接口;2、將所需要的功能封裝在獨立的插件內,並放置到宿主程序的插件目錄下;3、在VC6中配置該插件Tools->Customize...,顯示如圖2A所示配置界面;4、在界面上選中相應的插件並確認,該插件將立即啟用,執行效果如圖2B所示。
該方法存在以下缺點1、宿主程序需要支持複雜的插件加載、卸載、資源分配以及調用機制;2、由於插件必須安裝在宿主程序本地,當插件數量很多時管理很複雜;
3、一旦插件發布後,該界面就不能再修改,幾乎沒有用戶可定製性;4、新插件發布後,需要將其同步到所有宿主程序的歸屬機器上,而S-BUDDY分布在全國各地的個人用戶的機器上,統一更新十分困難,且會造成很大的網絡和設備壓力;5、插件的編寫複雜,需要有很強的技術功底,並利用編程工具才能編寫,起點高,造成普通用戶幾乎不可能製作出自己的界面;6、插件封裝嚴密,宿主程序難以接管其所有其消息,因此其操作結果必須由插件自身來返回給第三方,但第三方界面很多時,協議接口十分複雜,很容易影響到整個系統的穩定性。
方法三、宿主程序內嵌HTML頁面第三方將其需要的界面寫成對應的HTML頁面,並發布到宿主程序可以訪問的網絡(如Internet)上。宿主程序則在自己的界面上內嵌HTML瀏覽器,宿主程序啟動後顯示該HTML頁面,用戶在該HTML頁面上填寫信息並提交。技術方案如圖3A1、在宿主程序的界面中插入HTML瀏覽器控制項,見圖3B;2、編寫相應代碼來控制HTML瀏覽器控制項,使之能夠顯示指定HTML頁面的能力;3、編譯執行宿主程序,如圖3C。
該方法存在以下缺點1、宿主程序需支持HTML瀏覽器,在不同的作業系統下實現同一功能無法兼容;2、如果用戶在代理伺服器後面還需要支持WEB代理,對宿主程序改動很大;3、對第三方而言,需要有WEB SERVER,以便向宿主程序提供HTML頁面,並接受返回的用戶數據。

發明內容
本發明的目的在於提供一種在宿主程序界面中嵌入第三方界面的方法,以解決現有技術中存在定製第三方界面技術要求高,更新和維護困難的缺點。
為解決上述問題,本發明提供以下技術方案一種在宿主程序界面中嵌入第三方界面的方法,該方法為將描述第三方界面的描述文件傳送給宿主程序,宿主程序解析該描述文件並生成第三方界面。
根據上述方法宿主程序接收到描述文件後先生成相應的動態界面,再將描述文件傳送給該動態界面,由動態界面解析描述文件並生成第三方界面。
用戶操作完第三方界面後,將從第三方界面獲得的信息生成數據包傳遞給宿主程序並關閉第三方界面,然後由宿主程序將數據包傳送給第三方設備。
由第三方通過網絡將描述文件傳送給宿主程序。
傳送描述文件前先進行壓縮處理,在解析描述文件時先進行解壓縮處理。
宿主程序提供支持所述描述文件的控制項能力集,當接收到描述文件時通過執行該能力集來生成動態界面。
由獨立的插件提供支持所述描述文件的控制項能力集,當宿主程序接收到描述文件時調用該插件來生成動態界面。
對第三方界面的描述中包含對屬性和動作的描述。
採用可擴展的標記性語言(XML)、自定義文本文件、二進位文件或資源文件描述第三方界面。
本發明具有以下有益效果1、實現了宿主程序和第三方界面的無關性通過提供XML界面能力集,使得第三方可以在此能力集範圍內任意定義自己的專用界面,實現了宿主程序和第三方界面的無關性,完善地解決了S-BUDDY這類業務的界面多樣化需求。
2、通過這種嵌入界面的方式給第三方提供了自己定製用戶界面並獲取用戶數據的能力。
3、降低了技術門檻,方便第三方定製能力集採用簡單易懂的文本方式來描述界面,並提供了XML資源編輯工具,即時普通用戶也可迅速定製其界面。
4、可維護性好第三方的界面不需要安裝到宿主程序本地,因此不需要本地維護,也不存在管理問題,第三方界面的變動也不需要更新宿主程序。
5、更新方便第三方更改其界面定義後,不需要同步到宿主程序本地,而是在實時交互中傳送給宿主程序,因此更新第三方界面十分方便。


圖1A、圖1B、圖1C和圖1D為現有技術中實施方法一的界面示意圖;圖2A、圖2B為現有技術中實現方法二的界面示意圖;圖3A、圖3B、圖3C為現有技術中實現方法三的界面示意圖;圖4為本發明中第三方界面在整個方案中的地位示意圖;圖5為說明組合框控制的界面示意圖;圖6為產生的第三方界面示意圖。
具體實施例方式
本實施例主要以採用可擴展標記語言(XML)描述第三方界面為例對本發明進行說明。
在本發明中,第三方只需提供描述其界面的XML文本,宿主程序根據其腳本中的界面定義來生成第三方界面,並可將從該界面填寫的結果以XML返回給第三方。
參閱圖4所示,在即時通訊(IM)中,網絡中間件在第三方設備和宿主程序之間進行數據或文件傳送。
本發明的處理流程如下步驟①第三方利用XML資源編輯器或者手工編寫XML界面文本;步驟②第三方設備收到該文本後,傳遞給網絡中間件;步驟③網絡中間件將XML文本傳給宿主程序;步驟④宿主程序生成XML對話框(也可為一般的窗口界面),並將XML界面文本傳遞給該對話框;
步驟⑤XML對話框根據收到的XML文本產生相關的界面(第三方界面);步驟⑥最終用戶在該界面上完成資料的填寫後,點擊「提交」按鈕時XML對話框關閉,並將填寫結果打包給宿主程序;步驟⑦宿主程序通過網絡中間件將結果傳送給第三方設備。
以下對上述處理流程進行詳細說明宿主程序提供XML控制項能力集,支持靜態文本、文本編輯、組合框、列表框、單選按鈕群組、GroupBox、單選按鈕、複選按鈕、線條、圖像、進程條等主要控制項。
宿主程序支持可動態擴充的控制項能力集,上述控制項已覆蓋了一般程序所常用的絕大部分控制項。當現有控制項能力集不夠用時,還可動態擴充控制項能力集,新擴充的控制項不影響到原來的第三方已經定義好的界面。
宿主程序提供控制項能力集的方式有兩種A、將控制項能力集嵌入到主程序中,但需要升級宿主程序。
B、將控制項能力集作為一個獨立的插件,宿主程序通過接口調用該插件。當能力集增加新的控制項後,升級該插件即可,完全與宿主程序無關。
控制項能力集中的每種控制項均可支持屬性(Property)和動作(Action)。其中屬性描述了控制項某個方面的特性,如標題、位置、文本顏色、背景顏色、是否可見、是否使能等,由於每個控制項的特性存在差異,因此其支持的屬性也各不相同。
動作描述了控制項的某個屬性發生變更後,其他控制項的屬性發生跟隨性變化,如用戶選中組合框中的某項時,某個編輯控制項不能繼續讓用戶填寫,此時就可以定義對應的動作使得編輯控制項隱藏或者禁止編輯。
參閱圖5,以XML FORM中的組合框控制項(框1內的控制項)為例該控制項的XML定義為項目選擇 類型=「COMBOBOX」坐標=「15,323,135,414」使能=「TRUE」選中項=「無默認項」必填=「TRUE」
選項清單
選項 項名=「第一項」/
選項 項名=「第二項」/
選項 項名=「第三項」/
/選項清單
動作清單
第[1]動作 選中項=「第一項」類型=「等於」控制項名=「控制列表」屬性名=「選中項」屬性值=「第一項」/
第[2]動作 選中項=「第二項」類型=「等於」控制項名=「控制列表」屬性名=「選中項」屬性值=「第二項」/
第[3]動作 選中項=「第三項」類型=「等於」控制項名=「控制列表」屬性名=「選中項」屬性值=「第三項」/
/動作清單
/項目選擇
上面的定義中,為該組合框定義了如下屬性(1)控制項名稱項目選擇;(2)類型COMBOBOX;(3)坐標15,323,135,414;(4)使能TRUE;(5)選中項無默認項;(6)必填TRUE;(7)列表項清單第一項、第二項、第三項。
同時,還為該組合框定義了如下動作(「控制列表」是另外一個列表框控制項)(1)當選中「第一項」時控制列表也選中包含「第一項」文本的項目;(2)當選中「第二項」時控制列表也選中包含「第二項」文本的項目;(3)當選中「第三項」時控制列表也選中包含「第三項」文本的項目。
宿主程序能夠根據界面XML定義文本來動態生成相關的界面,即實現第三方界面和宿主程序的無關性。如第三方界面定義如下
?xml version=′1.0′encoding=′gb2312′?
XML表單FORM標題=′用戶調查′FORM位置=′221,198,371,398′背景色=′212,208,200′字體大小=′90′
普通按鈕 類型=「BUTTON」標題=「退出」坐標=「15,142,135,166」使能=「TRUE」動作=「COMMIT」/
文本編輯 類型=「EDIT」標題=「」坐標=「15,65,135,87」使能=「TRUE」單行=「TRUE」必填=「TRUE」/
姓名 類型=「STATIC」標題=「您的姓名」坐標=「15,41,135,61」使能=「TRUE」/
/XML表單
生成的第三方界面如圖6所示,宿主程序在用戶填寫完該界面後,可將用戶的結果透傳給第三方,以便第三方實現自己的業務流程。
採用標準的XML文本,在IE中可解析,可支持GB2312中文編碼和英文編碼。因此,XML控制項能力集屬性既可支持中文又可支持英文。
由於XML描述的第三方界面為文本方式,可有比較大的壓縮率,因此,將XML文本文件壓縮後再通過網絡傳送,這樣可大幅度降低網絡要求和對相關設備的要求。
本實施例雖然以採用XML描述第三方界面為例,但界面描述採用自定義文本文件、二進位文件或者資源文件(如微軟公司Visual C++的.RC文件)來描述界面,也可達到用XML來描述界面相同的效果。
權利要求
1.一種在宿主程序界面中嵌入第三方界面的方法,其特徵在於該方法為將描述第三方界面的描述文件傳送給宿主程序,宿主程序解析該描述文件並生成第三方界面。
2.如權利要求1所述的方法,其特徵在於,宿主程序接收到描述文件後先生成相應的動態界面,再將描述文件傳送給該動態界面,由動態界面解析描述文件並生成第三方界面。
3.如權利要求2所述的方法,其特徵在於,用戶操作完第三方界面後,將從第三方界面獲得的信息生成數據包傳遞給宿主程序並關閉動態界面,然後由宿主程序將數據包傳送給第三方設備。
4.如權利要求1所述的方法,其特徵在於,由第三方通過網絡將描述文件傳送給宿主程序。
5.如權利要求1或4所述的方法,其特徵在於,傳送描述文件前先進行壓縮處理,在解析描述文件時先進行解壓縮處理。
6.如權利要求1或2所述的方法,其特徵在於,宿主程序提供支持所述描述文件的控制項能力集,當接收到描述文件時通過執行該能力集來生成動態界面。
7.如權利要求6所述的方法,其特徵在於,由獨立的插件提供支持所述描述文件的控制項能力集,當宿主程序接收到描述文件時調用該插件來生成動態界面。
8.如權利要求1所述的方法,其特徵在於,對第三方界面的描述中包含對屬性和動作的描述。
9.如權利要求1所述的方法,其特徵在於,採用可擴展的標記性語言(XML)、自定義文本文件、二進位文件或資源文件描述第三方界面。
全文摘要
本發明公開了一種在宿主程序界面中嵌入第三方界面的方法,該方法為將描述第三方界面的描述文件傳送給宿主程序;宿主程序生成動態界面,並將從第三方接收到的界面描述文本傳遞給該動態界面;所述動態界面解析描述文件,生成相應的第三方界面並接受用戶操作;當用戶填寫完並確認操作完成後,動態界面把從第三方界面獲得的信息生成數據包傳遞給宿主程序,並關閉所述動態界面;以及由宿主程序將所述數據包透傳送給第三方設備。
文檔編號G06F9/44GK1629803SQ20031011743
公開日2005年6月22日 申請日期2003年12月18日 優先權日2003年12月18日
發明者柴銀輝 申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀