移動應(yīng)用的頁面處理方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及移動互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種移動應(yīng)用的頁面處理方法和裝 置。本發(fā)明同時涉及一種更新移動應(yīng)用客戶端頁面的方法和裝置,以及一種移動應(yīng)用的頁 面處理系統(tǒng)。
【背景技術(shù)】
[0002] 隨著移動互聯(lián)網(wǎng)技術(shù)不斷發(fā)展,企業(yè)需要選擇一個能夠滿足多種不同層面需求的 移動開發(fā)模式。目前,移動開發(fā)模式包括原生開發(fā)模式、Web開發(fā)模式和混合開發(fā)模式。
[0003] 移動應(yīng)用的頁面在移動客戶端的顯示方式取決于移動應(yīng)用的開發(fā)模式,即:移動 應(yīng)用的類型。移動應(yīng)用的類型包括原生應(yīng)用、網(wǎng)頁應(yīng)用及混合應(yīng)用三種類型。
[0004] 原生應(yīng)用(Native App)是用平臺特定的開發(fā)語言所開發(fā)的應(yīng)用。在原生應(yīng)用中, 客戶端內(nèi)置不同的模塊,通過請求服務(wù)端數(shù)據(jù)決定呈現(xiàn)相關(guān)內(nèi)容。
[0005] 網(wǎng)頁應(yīng)用(Web App)是采用統(tǒng)一的標(biāo)準(zhǔn)的HTML、JAVASCRIPT、CSS等Web技術(shù)開 發(fā),通過不同平臺的瀏覽器訪問來實現(xiàn)跨平臺。
[0006] 混合應(yīng)用(Hybrid App)是為了彌補原生應(yīng)用和網(wǎng)頁應(yīng)用兩種開發(fā)模式的缺陷的 產(chǎn)物。在混合應(yīng)用中,將動態(tài)區(qū)域使用HTML5代替,即同時采用網(wǎng)頁語言與程序語言進(jìn)行開 發(fā),通過不同的應(yīng)用商店進(jìn)行打包與分發(fā),應(yīng)用的特性更接近原生應(yīng)用而且又區(qū)別于網(wǎng)頁 應(yīng)用。
[0007] 原生應(yīng)用、網(wǎng)頁應(yīng)用和混合應(yīng)用三種不同模式移動應(yīng)用的優(yōu)缺點如表1所示:
[0008]
[0009]
[0010] 表1、不同模式移動應(yīng)用的優(yōu)缺點
[0011] 由表1可見,對于原生應(yīng)用而言,一方面,開發(fā)成本很大,每個客戶端平臺需要獨 立開發(fā)和維護(hù)一套系統(tǒng)和對應(yīng)的組件庫,并且這些組件單一,在一個包中固定幾種樣式的 組件。另一方面,應(yīng)用迭代更新困難,當(dāng)需要開發(fā)新的組件時,用戶還是必須下載新的應(yīng)用 包,這種情況會比較頻繁,因為這些硬編碼在客戶端的組件缺少擴展性。同時隨著組件增多 應(yīng)用包會增大,對設(shè)備、用戶和開發(fā)都造成更多的成本。對于原生應(yīng)用而言,雖然用戶體驗 最優(yōu),但開發(fā)維護(hù)成本最高。
[0012] 對于網(wǎng)頁應(yīng)用而言,一方面,由于網(wǎng)頁應(yīng)用采用統(tǒng)一的標(biāo)準(zhǔn)的HTML、JAVASCRIPT、 CSS等Web技術(shù)開發(fā),因此在現(xiàn)有開發(fā)模式中其開發(fā)成本最低。另一方面,由于頁面的處理 和顯示依賴于移動客戶端的瀏覽器,因此網(wǎng)頁應(yīng)用的頁面的用戶體驗最差。
[0013] 對于混合應(yīng)用而言,一方面,由于混合應(yīng)用的頁面非常依賴WebView的性能,Web 區(qū)域比原生部分的操作性能差,比如手勢和動畫出現(xiàn)停頓等,因此混合應(yīng)用的頁面的用戶 體驗相對原生應(yīng)用來說較差,但高于網(wǎng)頁應(yīng)用的用戶體驗。另一方面,對開發(fā)人員的要求 高,需要各種客戶端(i〇S,Android等)的開發(fā)人員,又需要Web開發(fā)人員開發(fā)混合應(yīng)用,因 此混合應(yīng)用的開發(fā)維護(hù)成本相對網(wǎng)頁應(yīng)用較高,但低于原生應(yīng)用的開發(fā)成本。
[0014] 綜上所述,現(xiàn)有技術(shù)下的移動應(yīng)用的頁面在兼具類似網(wǎng)頁應(yīng)用的低開發(fā)成本和類 似原生應(yīng)用的高用戶體驗兩方面優(yōu)點上還存在改進(jìn)空間。
【發(fā)明內(nèi)容】
[0015] 本發(fā)明提供一種移動應(yīng)用的頁面處理方法和裝置,以便于降低開發(fā)成本和提高用 戶體驗。本發(fā)明另外提供一種更新移動應(yīng)用客戶端頁面的方法和裝置,以及一種移動應(yīng)用 的頁面處理系統(tǒng)。
[0016] 本申請?zhí)峁┮环N移動應(yīng)用的頁面處理方法,包括:
[0017] 接收移動應(yīng)用的頁面訪問請求;
[0018] 根據(jù)所述頁面訪問請求中的統(tǒng)一資源定位器,向服務(wù)器端請求所述移動應(yīng)用的頁 面;
[0019] 接收所述服務(wù)器端回送的所述頁面;所述頁面包括頁面布局和頁面組件;
[0020] 解析所述頁面,將所述頁面轉(zhuǎn)換為客戶端可識別的對象;
[0021] 遍歷所述客戶端可識別的對象中的各個頁面組件,根據(jù)所述頁面組件的類型和所 述客戶端的基礎(chǔ)組件庫,生成所述頁面組件的實例;根據(jù)所述頁面組件的屬性,對所述頁面 組件的實例進(jìn)行配置;并渲染所述頁面組件的實例;
[0022] 將所有渲染后的所述頁面組件的實例返回所述客戶端可識別的對象中,生成所述 頁面的客戶端的本地對象;
[0023] 根據(jù)所述頁面的客戶端的本地對象,顯示所述頁面。
[0024] 可選的,在所述根據(jù)所述頁面組件的類型和所述客戶端的基礎(chǔ)組件庫,生成所述 頁面組件的實例之前,還包括:
[0025] 獲取所述客戶端本地預(yù)存的組件注冊表;
[0026] 根據(jù)所述組件注冊表,初始化所述客戶端的所述基礎(chǔ)組件庫;
[0027] 其中,所述組件注冊表包括所述基礎(chǔ)組件的類型和其對應(yīng)的類的對應(yīng)關(guān)系;所述 基礎(chǔ)組件庫至少包括按鈕組件、圖像組件、標(biāo)注組件和文本組件。
[0028] 可選的,所述頁面是指用Json數(shù)據(jù)交換格式或XML可標(biāo)記擴展語言表示的頁面。
[0029] 可選的,所述解析所述頁面,將所述頁面轉(zhuǎn)換為客戶端可識別的對象是指,解析所 述用Json數(shù)據(jù)交換格式表示的頁面,將其轉(zhuǎn)換為客戶端可識別的對象。
[0030] 可選的,所述解析所述頁面,將所述頁面轉(zhuǎn)換為客戶端可識別的對象是指,解析所 述用XML可標(biāo)記擴展語言表示的頁面,將其轉(zhuǎn)換為客戶端可識別的對象。
[0031] 可選的,所述根據(jù)所述頁面組件的類型和所述客戶端的基礎(chǔ)組件庫,生成所述頁 面組件的實例包括:
[0032] 根據(jù)所述頁面組件的類型,在所述客戶端的所述基礎(chǔ)組件庫中獲取所述頁面組件 的類;
[0033] 根據(jù)所述頁面組件的類,生成所述頁面組件的實例。
[0034] 可選的,所述頁面組件的屬性包括組件屬性、樣式屬性、邏輯屬性、編輯屬性和/ 或綁定屬性;所述組件屬性是指所述組件的特征描述;所述樣式屬性是指所述組件的樣式 描述,包括寬度、高度和/或顏色;所述邏輯屬性是指所述組件支持的控制語句,包括條件 判斷語句和/或循環(huán)執(zhí)行語句;所述編輯屬性是指所述組件的編輯規(guī)則;所述綁定屬性包 括所述組件綁定的事件、動畫、動態(tài)數(shù)據(jù)、樣式和/或埋點數(shù)據(jù)。
[0035] 可選的,所述根據(jù)所述頁面組件的屬性,對所述頁面組件的實例進(jìn)行配置包括:
[0036] 讀取所述頁面,獲取所述頁面組件的所述組件屬性、所述樣式屬性、所述邏輯屬性 所述、編輯屬性和/或所述綁定屬性;
[0037] 根據(jù)所述頁面組件的所述組件屬性、所述樣式屬性、所述邏輯屬性、所述編輯屬性 和/或所述綁定屬性,對所述頁面組件的實例進(jìn)行配置。
[0038] 可選的,所述綁定屬性中動態(tài)數(shù)據(jù)的綁定方式采取如下方式之一:動態(tài)綁定、靜態(tài) 綁定、依賴綁定。
[0039] 相應(yīng)的,本申請還提供一種移動應(yīng)用的頁面處理裝置,包括:
[0040] 接收請求單元,用于接收移動應(yīng)用的頁面訪問請求;
[0041] 發(fā)送請求單元,用于根據(jù)所述頁面訪問請求中的統(tǒng)一資源定位器,向服務(wù)器端請 求所述移動應(yīng)用的頁面;
[0042] 接收頁面單元,用于接收所述服務(wù)器端回送的所述頁面;所述頁面包括頁面布局 和頁面組件;
[0043] 解析單元,用于解析所述頁面,將所述頁面轉(zhuǎn)換為客戶端可識別的對象;
[0044] 遍歷單元,用于遍歷所述客戶端可識別的對象中的各個頁面組件,根據(jù)所述頁面 組件的類型和所述客戶端的基礎(chǔ)組件庫,生成所述頁面組件的實例;根據(jù)所述頁面組件的 屬性,對所述頁面組件的實例進(jìn)行配置;并渲染所述頁面組件的實例;
[0045] 合成單元,用于將所有渲染后的所述頁面組件的實例返回所述客戶端可識別的對 象中,生成所述頁面的客戶端的本地對象;
[0046] 顯示單元,用于根據(jù)所述頁面的客戶端的本地對象,顯示所述頁面。
[0047] 可選的,還包括:
[0048] 獲取注冊表單元,用于獲取所述客戶端本地預(yù)存的組件注冊表;
[0049] 初始化組件庫單元,用于根據(jù)所述組件注冊表,初始化所述客戶端的所述基礎(chǔ)組 件庫;
[0050] 其中,所述組件注冊表包括所述基礎(chǔ)組件的類型和其對應(yīng)的類的對應(yīng)關(guān)系;所述 基礎(chǔ)組件庫至少包括按鈕組件、圖像組件、標(biāo)注組件和文本組件。
[0051] 可選的,所述頁面是指用Json數(shù)據(jù)交換格式或XML可標(biāo)記擴展語言表示的頁面。
[0052] 可選的,所述解析所述頁面,將所述頁面轉(zhuǎn)換為客戶端可識別的對象是指,解析所 述用Json數(shù)據(jù)交換格式表示的頁面,將其轉(zhuǎn)換為客戶端可識別的對象。
[0053] 可選的,所述解析所述頁面,將所述頁面轉(zhuǎn)換為客戶端可識別的對象是指,解析所 述用XML可標(biāo)記擴展語言表示的頁面,將其轉(zhuǎn)換為客戶端可識別的對象。
[0054] 可選的,所述遍歷單元包括:
[0055] 生成組件實例單元,用于根據(jù)所述頁面組件的類型和所述客戶端的基礎(chǔ)組件庫, 生成所述頁面組件的實例;
[0056] 所述生成組件實例單元包括:
[0057] 獲取組件類子單元,用于根據(jù)所述頁面組件的類型,在所述客戶端的所述基礎(chǔ)組 件庫中獲取所述頁面組件的類;
[0058] 生成組件實例子單元,用于根據(jù)所述頁面組件的類,生成所述頁面組件的實例。
[0059] 可選的,所述頁面組件的屬性包括組件屬性、樣式屬性、邏輯屬性、編輯屬性和/ 或綁定屬性;所述組件屬性是指所述組件的特征描述;所述樣式屬性是指所述組件的樣式 描述,包括寬度、高度和/或顏色;所述邏輯屬性是指所述組件支持的控制語句,包括條件 判斷語句和/或循環(huán)執(zhí)行語句;所述編輯屬性是指所述組件的編輯規(guī)則;所述綁定屬性包 括所述組件綁定的事件、動畫、動態(tài)數(shù)據(jù)、樣式和/或埋點數(shù)據(jù)。
[0060] 可選的,所述遍歷單元包括:
[0061] 配置組件單元,用于根據(jù)所述頁面組件的屬性,對所述頁面組件的實例進(jìn)行配 置;
[0062] 所述配置組件單元包括:
[0063] 獲取屬性子單元,用于讀取所述頁面,獲取所述頁面組件的所述組件屬性、所述樣 式屬性、所述邏輯屬性所述、編輯屬性和/或所述綁定屬性;
[0064] 配置組件子單元,用于根據(jù)所述頁面組件的所述組件屬性、所述樣式屬性、所述邏 輯屬性、所述編輯屬性和/或所述綁定屬性,對所述頁面組件的實例進(jìn)行配置。
[0065] 可選的,所述綁定屬性中動態(tài)數(shù)據(jù)的綁定方式采取如下方式之一:動態(tài)綁定、靜態(tài) 綁定、依賴綁定。
[0066] 此外,本申請還提供一種更新移動應(yīng)用客戶端頁面的方法,包括:
[0067] 接收客戶端發(fā)送的移動應(yīng)用的頁面的統(tǒng)一資源定位器;
[0068] 根據(jù)所述統(tǒng)一資源定位器,獲取所述頁面的頁面標(biāo)識;
[0069] 根據(jù)所述頁面標(biāo)識,獲取所述頁面的自定義頁面片段、模板和/或所有頁面組件;
[0070] 根據(jù)所述自定義頁面片段、所述模板和/或所有所述頁面組件,合成所述頁面;
[0071] 將所述頁面組件的綁定屬性中的動態(tài)數(shù)據(jù)和樣式合成到所述頁面;
[0072] 向所述客戶端返回所述頁面;所述頁面包括頁面布局和頁面組件。
[0073] 可選的,所述統(tǒng)一資源定位器包括所述頁面的頁面名稱、所述頁面所屬的命名空 間和/或所述頁面所屬的用戶賬號。
[0074] 可選的,所述根據(jù)所述統(tǒng)一資源定位器,獲取所述頁面的頁面標(biāo)識包括:
[0075] 根據(jù)所述統(tǒng)一資源定位器,獲取所述頁面的頁面名稱、所述頁面所屬的命名空間 和/或所述頁面所屬的用戶賬號;
[0076] 根據(jù)所述頁面的頁面名稱、所述頁面所屬的命名空間和/或所述頁面所屬的用戶 賬號,獲取所述頁面的頁面標(biāo)識。
[0077] 可選的,在所述根據(jù)所述統(tǒng)一資源定位器,獲取所述頁面的頁面標(biāo)識之后,還包 括:
[0078] 根據(jù)所述頁面的頁面標(biāo)識和服務(wù)器端預(yù)設(shè)的A/B測試的配置文件,判斷所述頁面 是否需要使用評測模板或評測頁面,若是,則將所述評測模板的模板標(biāo)識或所述評測頁面 的頁面標(biāo)識作為所述頁面的頁面標(biāo)識。
[0079] 可選的,所述自定義頁面片段、所述模板和所述頁面組件采用Json數(shù)據(jù)交換格式 表示或XML可標(biāo)記擴展語言表示。
[0080] 可選的,所述頁面是指用Json數(shù)據(jù)交換格式和/或XML可標(biāo)記擴展語言表示的頁 面。
[0081] 可選的,所述頁面組件的屬性包括組件