本申請涉及移動應(yīng)用技術(shù)領(lǐng)域,特別是涉及移動終端設(shè)備上應(yīng)用頁面的展示方法及裝置。
背景技術(shù):
智能化的便攜式終端設(shè)備,諸如智能手機(jī)、平板電腦等設(shè)備得到了大面積的普及,使用便攜式終端設(shè)備的用戶也越來越多。在這些終端設(shè)備中,用戶可以很方便的安裝各種功能的應(yīng)用軟件APP,利用終端設(shè)備中安裝的應(yīng)用軟件APP,可以獲取互聯(lián)網(wǎng)信息,以及進(jìn)行工作、娛樂等等活動。如同在個人電腦中使用應(yīng)用軟件一樣,在便攜式移動終端設(shè)備中使用應(yīng)用軟件的過程中,也存在對其中安裝的應(yīng)用軟件進(jìn)行升級的需求。例如為了對應(yīng)用軟件進(jìn)行性能優(yōu)化,添加或完善功能,或消除BUG等目的,開發(fā)者往往會開發(fā)和發(fā)布升級版本的應(yīng)用軟件,用戶可以通過網(wǎng)絡(luò)獲取到升級的應(yīng)用版本,并在移動終端設(shè)備中安裝和使用。
在現(xiàn)有技術(shù)條件下,在移動終端設(shè)備中進(jìn)行應(yīng)用升級的方式主要有兩種,一種是用戶手動升級,即用戶可以自行通過開發(fā)者網(wǎng)站等媒介獲取升級程序的安裝包進(jìn)行安裝;另一種是通過“應(yīng)用商店”進(jìn)行應(yīng)用升級?!皯?yīng)用商店”也是在設(shè)備中運(yùn)行的一種應(yīng)用程序,主要用以對設(shè)備中的其他用戶應(yīng)用進(jìn)行管理,例如獲取,安裝,更新,卸載APP等操作一般都可以通過“應(yīng)用商店”這種應(yīng)用完成,方便了移動終端設(shè)備中用軟件應(yīng)用的管理。應(yīng)用開發(fā)者也可以通過“應(yīng)用商店”進(jìn)行應(yīng)用軟件的發(fā)布,以便提供給使用者下載安裝。比較常見應(yīng)用商店包括“蘋果應(yīng)用商店”,“谷歌應(yīng)用商店”等等。
出于安全性和規(guī)范性等考慮,應(yīng)用商店中的APP常常需要通過運(yùn)營者的審核才可以發(fā)布,這就使得開發(fā)者開發(fā)或者升級的應(yīng)用,需要經(jīng)過一段審核時間才能被一般使用者所獲得,對于開發(fā)者和軟件使用者來說,APP的發(fā)布和獲取的過程往往會因?yàn)椴豢煽氐膶徍藭r間而延遲,造成的后果是,使用者無法在第一時間及時獲得APP更新,在某些情況下,例如應(yīng)用的重大BUG修復(fù),或 遇有重要的推廣活動需要對APP進(jìn)行更新等,這種應(yīng)用更新造成的延遲常常是無法接受的,尤其對于電商平臺應(yīng)用,其作為平臺與終端用戶之間互動的工具,如果出現(xiàn)更新延遲,用戶可能無法第一時間獲取最新的功能或者數(shù)據(jù),對于電商平臺和終端用戶來說,都存在造成經(jīng)濟(jì)損失的潛在風(fēng)險。
綜上,需要本領(lǐng)域技術(shù)人員解決的技術(shù)問題就在于,實(shí)現(xiàn)一種移動終端設(shè)備上應(yīng)用頁面的展示方法,提高移動終端設(shè)備上應(yīng)用頁面的更新效率和便利性。
技術(shù)實(shí)現(xiàn)要素:
本申請?zhí)峁┝艘苿咏K端設(shè)備上應(yīng)用頁面的展示方法及裝置,可以提高移動終端設(shè)備上應(yīng)用頁面的更新效率和便利性。
本申請?zhí)峁┝巳缦路桨福?/p>
一種移動終端設(shè)備上應(yīng)用頁面的展示方法,所述應(yīng)用頁面用于展示業(yè)務(wù)對象信息,所述應(yīng)用頁面中包括至少一個與嵌入式腳本關(guān)聯(lián)的視圖單元,所述嵌入式腳本用于控制所述視圖單元的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容,所述方法包括:
確定所述視圖單元對應(yīng)的嵌入式腳本;
調(diào)用預(yù)置的腳本引擎執(zhí)行所述嵌入式腳本,以便在所述應(yīng)用頁面中展示所述視圖單元。
一種移動終端設(shè)備上應(yīng)用頁面的展示裝置,所述應(yīng)用頁面用于展示業(yè)務(wù)對象信息,所述應(yīng)用頁面中包括至少一個與嵌入式腳本關(guān)聯(lián)的視圖單元,所述嵌入式腳本用于控制所述視圖單元的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容,所述裝置包括:
腳本確定單元,用于確定所述視圖單元對應(yīng)的嵌入式腳本;
腳本執(zhí)行單元,用于調(diào)用預(yù)置的腳本引擎執(zhí)行所述嵌入式腳本,以便在所述應(yīng)用頁面中展示所述視圖單元。
根據(jù)本申請?zhí)峁┑木唧w實(shí)施例,本申請公開了以下技術(shù)效果:
通過本申請,首先確定視圖單元對應(yīng)的嵌入式腳本,進(jìn)而調(diào)用預(yù)置的腳本引擎執(zhí)行嵌入式腳本,以便在應(yīng)用頁面中展示所述視圖單元。在該方法中,應(yīng)用頁面用于展示業(yè)務(wù)對象信息,應(yīng)用頁面中包括至少一個與嵌入式腳本關(guān)聯(lián)的視圖單元,嵌入式腳本用于控制所述視圖單元的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容;對視圖單元中元素類型,樣式,數(shù)據(jù)內(nèi)容等的控制或操作是通過在腳本引擎的基礎(chǔ)上運(yùn)行嵌入式腳本代理完成,這樣,在視圖單元中某些元素,樣式,數(shù)據(jù)內(nèi)容發(fā)生了更新時,只需更新嵌入式腳本的腳本代碼來實(shí)現(xiàn)新的控制邏輯,并調(diào)用預(yù)置的腳本引擎執(zhí)行更新的嵌入式腳本,即可完成對應(yīng)用頁面內(nèi)容及控制邏輯的更新,而不需要重新改寫應(yīng)用的底層代碼重新編譯來升級應(yīng)用,從而實(shí)現(xiàn)了更加便捷和高效的應(yīng)用頁面的更新。
當(dāng)然,實(shí)施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請實(shí)施例提供的移動終端設(shè)備上應(yīng)用頁面的展示方法的流程圖;
圖2是本申請實(shí)施例提供的通過嵌入式腳本來控制視圖單元的應(yīng)用架構(gòu)示意圖;
圖3是本申請實(shí)施例提供的通過嵌入式腳本來控制視圖單元的示例的示意圖;
圖4是本申請實(shí)施例提供的通過嵌入式腳本處理的用戶點(diǎn)擊事件的示意圖;
圖5是本申請實(shí)施例提供的移動終端設(shè)備上應(yīng)用頁面的展示裝置的示意圖。
具體實(shí)施方式
下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
本申請實(shí)施例提供了移動終端設(shè)備上應(yīng)用頁面的展示方法,其中,應(yīng)用頁面用于展示業(yè)務(wù)對象信息,例如商品對象信息,店鋪信息,或者還可以是廣告信息等等。應(yīng)用頁面可以包括至少一個與嵌入式腳本相關(guān)聯(lián)的視圖單元,嵌入式腳本用于控制該視圖單元的元素類型(例如,圖片類型、文本類型、按鈕、輸入框等控件類型),樣式(例如,元素的尺寸、顏色,元素之間的相對位置關(guān)系等),和/或數(shù)據(jù)內(nèi)容(例如,具體的圖片鏈接地址、文本字符內(nèi)容等)等,視圖單元可以是應(yīng)用頁面中包括的某一個或多個信息展示位,也可以是整個應(yīng)用頁面。如圖1所示,為本申請實(shí)施例提供的移動終端設(shè)備上應(yīng)用頁面的展示方法的流程圖,請參看圖1,該方法可以包括以下步驟:
S110:確定所述視圖單元對應(yīng)的嵌入式腳本;
在移動終端設(shè)備上展示應(yīng)用頁面時,首先可以確定視圖單元對應(yīng)的嵌入式腳本。如前所述,在本申請實(shí)施例提供的方法中,用于展示業(yè)務(wù)對象信息的應(yīng)用頁面中,包括了至少一個與嵌入式腳本相關(guān)聯(lián)的視圖單元,這個或這些視圖單元的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容等都可以通過對應(yīng)的嵌入式腳本來控制,下面結(jié)合附圖對這種通過嵌入式腳本控制視圖單元的頁面進(jìn)行詳細(xì)的介紹。
如圖2所示,其為通過嵌入式腳本來控制視圖單元的應(yīng)用架構(gòu)示意圖,在實(shí)現(xiàn)這種應(yīng)用或應(yīng)用中的頁面時,應(yīng)用或頁面可以包括了如圖2所示的應(yīng)用本地Native層210,腳本引擎220,軟件開發(fā)工具包SDK230(可選),嵌入式腳本240,以及視圖單元250。其中應(yīng)用本地Native層210可以理解為以軟件的基礎(chǔ)框架層,應(yīng)用本地Native層通常以平臺的原生語言如C,C++,Obj-C等編程語言實(shí)現(xiàn),具有運(yùn)行效率高,底層調(diào)用靈活,可與上層應(yīng)用通信和交互等特點(diǎn)。本地Native層可以調(diào)用腳本引擎220加載和執(zhí)行嵌入式腳本240,進(jìn)而創(chuàng)建和控制視圖單元250。軟件開發(fā)工具包SDK230是可選的,其中可以包括實(shí)現(xiàn)某些應(yīng)用功能的工具包,如可以包括一些可被調(diào)用的接口函數(shù)等,例如軟 件開發(fā)工具包SDK可以提供創(chuàng)建一個視圖單元的函數(shù):
View();
開發(fā)者可以通過SDK中相關(guān)的函數(shù)接口實(shí)現(xiàn)對視圖單元的控制,而不需要重新編寫相關(guān)的代碼,例如可以通過調(diào)用相關(guān)的函數(shù)來設(shè)置/獲取視圖單元的大小或位置等等。此外,在嵌入式腳本運(yùn)行的過程中,本地Native層還可以通過腳本引擎(虛擬機(jī))與運(yùn)行的嵌入式腳本進(jìn)行交互,例如,Native層可以向腳本引擎?zhèn)鬟f要在視圖單元中顯示的內(nèi)容數(shù)據(jù)等,Native層還可以對腳本引擎執(zhí)行相關(guān)的配置操作,等等。
為了更好地理解上述應(yīng)用架構(gòu)下,通過嵌入式腳本控制視圖單元的過程,以下再以通過嵌入式腳本控制視圖單元中的按鈕為例,進(jìn)一步進(jìn)行詳細(xì)的介紹。
通常,由嵌入式腳本創(chuàng)建的組件是不包含真實(shí)實(shí)體的虛擬對象,在創(chuàng)建虛擬對象的同時,嵌入式腳本可以通過腳本引擎在應(yīng)用的Native層創(chuàng)建對應(yīng)的真實(shí)實(shí)體,并由腳本引擎創(chuàng)建和管理虛擬對象與真實(shí)實(shí)體的映射關(guān)系。利用這種映射關(guān)系,嵌入式腳本可以實(shí)現(xiàn)通過控制虛擬對象來控制對應(yīng)的真實(shí)實(shí)體,以及與其進(jìn)行交互等。請參看圖3,為通過嵌入式腳本來控制視圖單元的示例的示意圖,如圖3所示,在該示例中,嵌入式腳本要完成對視圖單元的控制任務(wù)包括創(chuàng)建按鈕A’,配置按鈕A’的顏色以及尺寸等,當(dāng)嵌入式腳本要完成創(chuàng)建按鈕A’的任務(wù)時,嵌入式腳本所創(chuàng)建的實(shí)際上是一個虛擬對象,同時,通過腳本引擎在應(yīng)用的Native層創(chuàng)建對應(yīng)的真實(shí)實(shí)體,如對應(yīng)于虛擬對象按鈕A’,在應(yīng)用的Native層創(chuàng)建了真實(shí)實(shí)體按鈕A,同時,腳本引擎還創(chuàng)建了虛擬對象(按鈕A’)與對應(yīng)真實(shí)實(shí)體(按鈕A)的映射關(guān)系。接下來,嵌入式腳本要完成配置按鈕A’顏色以及大小的任務(wù),在嵌入式腳本這一層,可以通過腳本代碼執(zhí)行配置虛擬對象按鈕A’的顏色及尺寸,腳本引擎則根據(jù)按鈕A’與按鈕A的映射關(guān)系,對對應(yīng)的真實(shí)實(shí)體按鈕A執(zhí)行配置顏色以及尺寸的任務(wù)。
如前所述,嵌入式腳本可以通調(diào)用SDK中的函數(shù)來完成指定任務(wù),例如上述對按鈕A’的創(chuàng)建以及配置任務(wù)可以通過調(diào)用SDK中的如下預(yù)置函數(shù)完成:
Button(Button);//創(chuàng)建一個Button對象;
backgroundColor(color,alpha);//配置按鈕顏色;
size(w,h);//配置按鈕尺寸。
通過嵌入式腳本控制視圖單元的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容,不僅可以實(shí)現(xiàn)視圖單元中對象的創(chuàng)建和渲染,還可以在應(yīng)用運(yùn)行的過程中對特定的事件進(jìn)行響應(yīng)和處理,例如用戶點(diǎn)擊事件等。請參看圖4,為通過嵌入式腳本處理的用戶點(diǎn)擊事件的示意圖。如圖4所示,在發(fā)生用戶點(diǎn)擊事件后,首先由應(yīng)用Native層的真實(shí)實(shí)體按鈕A接收用戶點(diǎn)擊,從而在應(yīng)用Native層產(chǎn)生按鈕A點(diǎn)擊事件,應(yīng)用Native層將該事件交給腳本引擎,腳本引擎根據(jù)腳本引擎可以通過虛擬對象與真實(shí)實(shí)體的映射關(guān)系,確定對應(yīng)的虛擬對象按鈕A’,并執(zhí)行與該虛擬對象以及事件相關(guān)聯(lián)的事件處理代碼,從而完成對用戶點(diǎn)擊事件的響應(yīng)和處理。
由以上的示例可見,在通過嵌入式腳本控制所述視圖單元的元素,樣式,和/或數(shù)據(jù)內(nèi)容的實(shí)現(xiàn)方式下,對視圖單元中元素類型,樣式,以及數(shù)據(jù)內(nèi)容的控制和操作都可以利用嵌入式腳本完成,更具體一點(diǎn)的說,是通過在腳本引擎的基礎(chǔ)上運(yùn)行嵌入式腳本來“代理”完成的,通過腳本引擎調(diào)用的腳本代碼運(yùn)行在應(yīng)用Native層的上一層次,要實(shí)現(xiàn)視圖單元中元素,樣式,和/或數(shù)據(jù)內(nèi)容的更新,僅需對對應(yīng)的嵌入式腳本進(jìn)行更新即可,而不必對應(yīng)用的底層代碼(例如應(yīng)用Native層)進(jìn)行更改,而嵌入式腳本具有便于編寫,執(zhí)行效率高,以及體積小便于網(wǎng)絡(luò)交互等特點(diǎn),利用嵌入式腳本實(shí)現(xiàn)的頁面展示方法,可以大大提高移動終端設(shè)備上應(yīng)用頁面的更新效率和便利性。
具體在確定視圖單元對應(yīng)的嵌入式腳本時,可以有多種實(shí)現(xiàn)方式,例如可以首先確定視圖單元對應(yīng)的嵌入式腳本是否為最近版本的嵌入式腳本,若不是,則獲取最新的嵌入式腳本進(jìn)行加載。即可以首先確定視圖單元對應(yīng)的嵌入式腳本是否存在更新,若存在更新,則獲取更新的嵌入式腳本,以便通過調(diào)用預(yù)置的腳本引擎執(zhí)行更新的嵌入式腳本,并通過更新的嵌入式腳本來控制及更新所述視圖單元的元素,樣式,和/或數(shù)據(jù)內(nèi)容。具體在實(shí)現(xiàn)確定嵌入式腳本是否存在更新,以及獲取更新的嵌入式腳本時,也可以有多種實(shí)現(xiàn)方式,下面從移動終端設(shè)備本地應(yīng)用主動獲取或被動接收的角度介紹兩種實(shí)現(xiàn)方式。
移動終端設(shè)備本地應(yīng)用主動獲取的實(shí)現(xiàn)方式下,應(yīng)用或者應(yīng)用注冊的后臺 服務(wù)可以在某些觸發(fā)條件下主動向服務(wù)器請求最新的嵌入式腳本,例如在預(yù)定的時間間隔到達(dá)時,或者每次應(yīng)用啟動時,確定本地緩存的嵌入式腳本的第一版本信息,并發(fā)送至腳本服務(wù)器,腳本服務(wù)器根據(jù)第一版本信息確定設(shè)備緩存的嵌入式腳本是否存在更新,并在判斷存在更新時返回更新指令,在接收到更新指令后,本地應(yīng)用可以根據(jù)預(yù)置網(wǎng)絡(luò)地址訪問所述腳本服務(wù)器,下載更新的嵌入式腳本并保存在本地緩存中。預(yù)置網(wǎng)絡(luò)地址可以包含在更新指令中,或者存儲在移動終端設(shè)備本地存儲中。
在被動接收的方式下,可以是在接收到腳本服務(wù)器的版本推送通知后啟動嵌入式腳本的下載,即接收腳本服務(wù)器下發(fā)的嵌入式腳本的版本推送通知,版本推送通知中可以包括腳本服務(wù)器中已更新嵌入式腳本的第二版本信息,然后將第二版本信息與本地緩存的對應(yīng)嵌入式腳本的版本進(jìn)行比對,根據(jù)比對結(jié)果確定嵌入式腳本是否存在更新,進(jìn)而在確定存在更新的情況下,根據(jù)預(yù)置網(wǎng)絡(luò)地址訪問腳本服務(wù)器,下載更新的嵌入式腳本并保存在本地緩存中。被動接收到實(shí)現(xiàn)方式可以利用應(yīng)用注冊的后臺服務(wù)實(shí)現(xiàn),以便在應(yīng)用的前端停止運(yùn)行時,也可以接收到接收腳本服務(wù)器下發(fā)的版本推送通知,以及完成腳本下載等任務(wù),這樣在應(yīng)用頁面展示時,可以不必關(guān)心腳本的版本而直接加載最新的嵌入式腳本,通過嵌入式腳本的運(yùn)行完成頁面中相關(guān)視圖單元控制,進(jìn)而完成應(yīng)用頁面的展示。
上述兩種確定和獲取更新的嵌入式腳本實(shí)現(xiàn)方式,是基于嵌入式腳本的版本控制原理來實(shí)現(xiàn)的,而在另一種是實(shí)現(xiàn)方式下,也可以將嵌入式腳本與應(yīng)用要展示的當(dāng)前頁面通過統(tǒng)一資源定位符url綁定,腳本代碼可以嵌入頁面代碼中,也可以存儲為與該url關(guān)聯(lián)的獨(dú)立腳本文件,這樣,應(yīng)用在展示頁面要訪問頁面的url時,就可以同時獲取該頁面對應(yīng)的最新的嵌入式腳本,而不必關(guān)心其版本。
以上介紹了多種確定和獲取更新的嵌入式腳本實(shí)現(xiàn)方式,各實(shí)現(xiàn)方式都有其各自的優(yōu)勢,本領(lǐng)域技術(shù)人員在實(shí)施本方法時,可以結(jié)合應(yīng)用的運(yùn)行環(huán)境,嵌入式腳本的代碼量,在不同實(shí)現(xiàn)方式下數(shù)據(jù)通信開銷,以及更新腳本的實(shí)時性等等多個角度的需求和實(shí)際情況選擇合適的實(shí)現(xiàn)方式。
S120:調(diào)用預(yù)置的腳本引擎執(zhí)行所述嵌入式腳本,以便在所述應(yīng)用頁面中展示所述視圖單元。
在確定了視圖單元對應(yīng)的嵌入式腳本后,可以調(diào)用預(yù)置的腳本引擎執(zhí)行嵌入式腳本,以便在應(yīng)用頁面中展示對應(yīng)的視圖單元。如前所述,對于應(yīng)用頁面中與嵌入式腳本關(guān)聯(lián)的視圖單元,其中的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容是通過相關(guān)聯(lián)的嵌入式腳本來控制的,當(dāng)對相關(guān)聯(lián)的嵌入式腳本的控制方式或控制邏輯進(jìn)行更新后,對應(yīng)的視圖單元中的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容也會相應(yīng)的更新,從而實(shí)現(xiàn)了應(yīng)用頁面的更新。這種應(yīng)用頁面的展示方法,在頁面的視圖單元更新時,只需要對腳本層的嵌入式腳本進(jìn)行更新即可,而并不需要重新設(shè)計應(yīng)用的底層代碼或者框架,從而提高移動終端設(shè)備上應(yīng)用頁面的更新效率和便利性。
并且,這種應(yīng)用頁面的展示方法具有廣泛的適用性,這種廣泛的適用性主要體現(xiàn)在以下兩點(diǎn):其一,就應(yīng)用的頁面而言,在許多應(yīng)用中,每個應(yīng)用頁面通常包括多個信息展示位,也俗稱為“坑位”,例如對于電商應(yīng)用,一個頁面通常包括多個信息展示位用以展示不同的商品對象的摘要信息(例如,包括代表圖片、標(biāo)題文本等內(nèi)容);同時,不同的信息展示位可以以不同的展示方式展示不同類型的內(nèi)容,例如在同一頁面的不同的信息展示位中,以的不同展示方式展示商品對象信息以及其他類型的信息等。而這些應(yīng)用需求都可以通過本應(yīng)用頁面的展示方法滿足,如可以將信息展示位作為視圖單元并與相應(yīng)嵌入式腳本關(guān)聯(lián),從而通過嵌入式腳本控制頁面每個信息展示位中的元素,樣式,和/或數(shù)據(jù)內(nèi)容的展示,也可以通過嵌入式腳本實(shí)現(xiàn)對具有不同類型信息的信息展示位的不同展示方式。還可以將整個頁面作為一個視圖單元,進(jìn)而通過關(guān)聯(lián)的嵌入式腳本控制整個頁面的展示。其二,由于腳本語言通常具有跨平臺應(yīng)用的特點(diǎn),通過嵌入式腳本控制視圖單元的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容,進(jìn)而實(shí)現(xiàn)應(yīng)用頁面展示的方法可以適用于多種平臺,從而大大減輕跨平臺應(yīng)用開發(fā)的工作量。下面就以上特性的實(shí)現(xiàn)進(jìn)行具體的介紹。
作為嵌入式腳本的控制對象,嵌入式腳本關(guān)聯(lián)的視圖單元可以是某頁面中的信息展示位,也可以是整個頁面。在嵌入式腳本執(zhí)行時,可以首先根據(jù)嵌入式腳本關(guān)聯(lián)的視圖單元,確定嵌入式腳本在應(yīng)用頁面中的目標(biāo)運(yùn)行環(huán)境,進(jìn)而 調(diào)用預(yù)置的腳本引擎在所確定的目標(biāo)運(yùn)行環(huán)境執(zhí)行嵌入式腳本。例如若嵌入式腳本關(guān)聯(lián)的視圖單元為應(yīng)用頁面中的信息展示位,則確定嵌入式腳本在應(yīng)用頁面中的目標(biāo)運(yùn)行環(huán)境為該信息展示位,并調(diào)用預(yù)置的腳本引擎在該信息展示位中執(zhí)行嵌入式腳本;若嵌入式腳本關(guān)聯(lián)的視圖單元為整個頁面,則確定嵌入式腳本在應(yīng)用頁面中的目標(biāo)運(yùn)行環(huán)境為當(dāng)前應(yīng)用頁面,并調(diào)用預(yù)置的腳本引擎在該當(dāng)前應(yīng)用頁面中執(zhí)行嵌入式腳本。
不同的運(yùn)行環(huán)境中,嵌入式腳本對于待展示的內(nèi)容的獲取方式可以不同。例如,在嵌入式腳本作用于頁面中某個信息展示位的情況下,關(guān)于信息展示位本身的形狀、尺寸、在頁面中的位置以及信息展示位內(nèi)具體待展示的數(shù)據(jù)內(nèi)容(例如,具體代表圖片的地址、標(biāo)題文本的內(nèi)容等等),都可以是在native層定義的,嵌入式腳本中可以僅對信息展示位中需要展示的各個元素的樣式等(例如圖片元素與文本元素的位置關(guān)系、按鈕等控件元素的位置、顏色、大小等等)進(jìn)行控制。具體在對這種頁面進(jìn)行展示時,native層首先訪問該頁面的頁面地址,獲取到頁面數(shù)據(jù)以及關(guān)聯(lián)的嵌入式腳本,然后,利用頁面數(shù)據(jù)對頁面中的信息展示位進(jìn)行初始化,初始化完成后,各個信息展示位在頁面中的位置、尺寸等都已經(jīng)確定,只是信息展示位內(nèi)尚未展示出具體的數(shù)據(jù)內(nèi)容。也就是說,如果每個信息展示位具有對應(yīng)的邊框,則在初始化完成后,頁面中可以展示出一個個空白的框體,這些框體通常為矩形,逐行或者逐列展示在頁面中,每個框體對應(yīng)一個信息展示位。
之后,native層可以從第一個信息展示位開始進(jìn)行內(nèi)容展示。具體的,首先將腳本引擎的目標(biāo)運(yùn)行環(huán)境配置為當(dāng)前信息展示位,然后,調(diào)用腳本引擎執(zhí)行嵌入式腳本,并將該信息展示位關(guān)聯(lián)的數(shù)據(jù)內(nèi)容傳入到腳本引擎中,這樣,腳本引擎就可以將該當(dāng)前信息展示位確定為運(yùn)行環(huán)境,也即,對于腳本引擎而言,當(dāng)前信息展示位就是整個窗口,并可以通過窗口句柄獲取到當(dāng)前信息展示位的屬性信息,包括位置、尺寸等等,接下來,就可以按照嵌入式腳本中定義的樣式,對native層傳入的數(shù)據(jù)內(nèi)容展示到該信息展示位中。在完成一個信息展示位的展示后,再將下一個信息展示位確定為當(dāng)前信息展示位,同樣按照上述方式進(jìn)行該信息展示位的內(nèi)容展示,直到將頁面中各個信息展示位的內(nèi)容展示完畢。
需要說明的是,在頁面中存在多個信息展示位時,不同的信息展示位可以共用同一個嵌入式腳本,也即,同一嵌入式腳本可以在不同的信息展示位之間進(jìn)行復(fù)用,在每展示一個信息展示位中的內(nèi)容時,腳本引擎執(zhí)行的都可以同一嵌入式腳本。在這種情況下,各個信息展示位中展示出的元素可以具有樣式統(tǒng)一的特點(diǎn)。當(dāng)然,在實(shí)際應(yīng)用中,如果需要體現(xiàn)出不同信息展示位之間的個性化,或者樣式的多樣性,還可以為不同的信息展示位配置不同的嵌入式腳本,可以由native層控制信息展示位與嵌入式腳本之間的關(guān)聯(lián)關(guān)系,當(dāng)需要展示某個信息展示位中的內(nèi)容時,可以調(diào)用腳本引擎執(zhí)行該信息展示位關(guān)聯(lián)的腳本。
當(dāng)然,在實(shí)際應(yīng)用中,同一頁面內(nèi)可能會包含多個內(nèi)容類型的信息展示位,例如,有的信息展示位用于展示商品對象的摘要信息,而有的信息展示位是用于展示廣告等其他類型的信息,等等。對于不同內(nèi)容類型的信息展示位而言,信息展示位內(nèi)的信息展示樣式等往往有不同的需求。針對這種情況,為了能夠?qū)崿F(xiàn)在不同信息展示位復(fù)用同一嵌入式腳本,可以在嵌入式腳本中包括多個代碼段,每個代碼段對應(yīng)不同的內(nèi)容類型。native層在調(diào)用腳本引擎執(zhí)行腳本時,除了傳入當(dāng)前信息展示位關(guān)聯(lián)的具體內(nèi)容數(shù)據(jù),還可以確定出當(dāng)前信息展示位的內(nèi)容類型信息,并將該內(nèi)容類型信息也傳給腳本引擎,以便嵌入式腳本根據(jù)該內(nèi)容類型信息,執(zhí)行對應(yīng)的代碼段,以控制信息展示位的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容。
這種嵌入式腳本頁面中的具體信息展示位的實(shí)現(xiàn)方式下,也就意味著頁面中除了信息展示位之外的其他內(nèi)容,仍然可以是在native層進(jìn)行定義。考慮到在電子商務(wù)銷售平臺相關(guān)的應(yīng)用頁面自身的特點(diǎn),也即信息展示位之外的其他內(nèi)容,在展示樣式等方面通常不會發(fā)生太頻繁的更新,因此,更適于在native層定義。而信息展示位內(nèi)部的元素類型、樣式等信息,相對而言,會比較頻繁地發(fā)生更新,因此,可以僅利用嵌入式腳本定義信息展示位內(nèi)的元素類型、樣式信息,關(guān)于信息展示位本身的屬性信息,以及信息展示位內(nèi)的具體內(nèi)容數(shù)據(jù)也都可以在native層進(jìn)行定義,這樣可以使得嵌入式腳本僅關(guān)注頁面中具有較高更新頻率的內(nèi)容,避免嵌入式腳本的代碼過于冗長。另一方面,由于頁面內(nèi)的信息展示位往往具有結(jié)構(gòu)化的特點(diǎn),同一頁面內(nèi)的不同信息展示位之間,在展示的元素類型、樣式等方式,往往是相同的,因此,在腳本中僅定義信息展 示位內(nèi)的元素類型、樣式信息,而不需要定義具體內(nèi)容數(shù)據(jù)的情況下,可以實(shí)現(xiàn)同一腳本在不同信息展示位之間的復(fù)用,從而可以提高腳本的使用率,減輕系統(tǒng)的腳本維護(hù)、傳輸壓力,也可以提高頁面展示效率。
當(dāng)然,在另一種實(shí)現(xiàn)方式下,對于作用于信息展示位的嵌入式腳本,還可以直接在腳本內(nèi)定義信息展示位本身的屬性(包括在頁面中的位置、尺寸、形狀、背景色等等)以及信息展示位內(nèi)關(guān)聯(lián)的具體內(nèi)容數(shù)據(jù)。例如,以下為加入類型信息判斷邏輯的嵌入式腳本偽代碼:
{if product==GetViewType()//若信息展示位的類型信息為產(chǎn)品;
{view1=View();//創(chuàng)建視圖單元view1;
view1.size(w1,h1);//配置視圖單元view1的尺寸為w1*h1;
view1.backgroundColor(color1,100);//配置視圖單元view1的背景顏色為color1,透明度100%;
button1=Button(Button);//創(chuàng)建按鈕button1;
button1.callback(addToCart);//配置按鈕回調(diào)函數(shù)為“加入購物車”;
……;
};
if ad==GetViewType()//若信息展示位的類型信息為廣告;
{view2=View();//創(chuàng)建視圖view2;
view2.size(w2,h2);//配置視圖view2的尺寸為w2*h2;
view2.backgroundColor(color2,80);//配置視圖view2的背景顏色為color2,透明度80%;
button2=Button(Button);//創(chuàng)建按鈕button2;
button2.callback(jumpToUrl_1);//配置按鈕回調(diào)函數(shù)為“跳轉(zhuǎn)至Url_1”;
……;
};
}
在上述偽代碼示例中,嵌入式腳本根據(jù)所確定的視圖單元的不同類型信息,進(jìn)行了不同的展示控制,例如當(dāng)確定信息展示位的類型信息為產(chǎn)品時,所創(chuàng)建的對應(yīng)視圖單元的尺寸為w1*h1,配置視圖單元的背景顏色為color1,透明度100%,以及在其中創(chuàng)建“加入購物車”的按鈕;當(dāng)確定信息展示位的類型信息為廣告時,所創(chuàng)建的對應(yīng)視圖單元的尺寸為w2*h2,配置視圖單元的背景顏色為color2,透明度80%,以及在其中創(chuàng)建跳轉(zhuǎn)至指定url(Url_1)的按鈕。
以上對嵌入式腳本作用于信息展示位的情況進(jìn)行了介紹,而當(dāng)嵌入式腳本在應(yīng)用頁面中的目標(biāo)運(yùn)行環(huán)境為當(dāng)前應(yīng)用的整個頁面時,關(guān)于該頁面的元素、樣式、數(shù)據(jù)內(nèi)容等都可以在嵌入式腳本中進(jìn)行定義,此時,native層在訪問該頁面的頁面地址并獲取到最新的嵌入式腳本后,可以將腳本引擎的運(yùn)行環(huán)境配置為當(dāng)前整個頁面,然后,直接調(diào)用腳本引擎執(zhí)行對應(yīng)的嵌入式腳本,即可完成對該頁面的展示。
如前所述,由于腳本語言通常具有跨平臺應(yīng)用的特點(diǎn),通過嵌入式腳本控制視圖單元的元素,樣式,和/或數(shù)據(jù)內(nèi)容,可以實(shí)現(xiàn)應(yīng)用頁面展示的方法的跨平臺應(yīng)用,從而大大減輕跨平臺應(yīng)用開發(fā)的工作量。例如使用Lua腳本語言實(shí)現(xiàn)的嵌入式腳本,對應(yīng)的腳本引擎可以包括Lua虛擬機(jī)。Lua腳本語言是一種擴(kuò)展式程序設(shè)計語言,用Lua腳本語言設(shè)計的腳本可以被嵌入宿主程序,例如一些移動終端應(yīng)用中工作,宿主程序可以通過腳本引擎執(zhí)行Lua代碼,讀寫Lua變量,也可以注入函數(shù)讓Lua腳本調(diào)用。Lua腳本語言以及使用Lua腳本語言實(shí)現(xiàn)的嵌入式腳本,與系統(tǒng)原生語言結(jié)合緊密,具有很強(qiáng)的可擴(kuò)展性,語法簡潔,執(zhí)行高效,可移植性好等特點(diǎn)。
以上介紹了本申請實(shí)施例提供的移動終端設(shè)備上應(yīng)用頁面的展示方法,在該方法中,應(yīng)用頁面用于展示業(yè)務(wù)對象信息,應(yīng)用頁面中包括至少一個與嵌入式腳本關(guān)聯(lián)的視圖單元,嵌入式腳本用于控制所述視圖單元的元素,樣式,和/或數(shù)據(jù)內(nèi)容;對視圖單元中元素,樣式,數(shù)據(jù)內(nèi)容等的控制或操作是通過在腳本引擎的基礎(chǔ)上運(yùn)行嵌入式腳本代理完成,在進(jìn)行應(yīng)用頁面的展示時,首先 確定視圖單元對應(yīng)的嵌入式腳本,進(jìn)而調(diào)用預(yù)置的腳本引擎執(zhí)行嵌入式腳本,以便在應(yīng)用頁面中展示所述視圖單元。這樣,在視圖單元中某些元素,樣式,數(shù)據(jù)內(nèi)容發(fā)生了更新時,只需更新嵌入式腳本的腳本代碼來實(shí)現(xiàn)新的控制邏輯,并調(diào)用預(yù)置的腳本引擎執(zhí)行更新的嵌入式腳本,即可完成對應(yīng)用頁面內(nèi)容及一些控制邏輯的更新,而不需要重新改寫應(yīng)用的底層代碼重新編譯來升級應(yīng)用,從而實(shí)現(xiàn)了更加便捷和高效的應(yīng)用頁面的更新。
與本申請實(shí)施例提供的移動終端設(shè)備上應(yīng)用頁面的展示方法相對應(yīng),還提供了移動終端設(shè)備上應(yīng)用頁面的展示裝置,其中,應(yīng)用頁面用于展示業(yè)務(wù)對象信息,應(yīng)用頁面中包括至少一個與嵌入式腳本關(guān)聯(lián)的視圖單元,嵌入式腳本用于控制視圖單元的元素類型,樣式,和/或數(shù)據(jù)內(nèi)容。請參看圖5,為移動終端設(shè)備上應(yīng)用頁面的展示裝置的示意圖,如圖5所示,該裝置可以包括:
腳本確定單元510,用于確定視圖單元對應(yīng)的嵌入式腳本;
腳本執(zhí)行單元520,用于調(diào)用預(yù)置的腳本引擎執(zhí)行嵌入式腳本,以便在應(yīng)用頁面中展示視圖單元。
其中,腳本確定單元可以包括:
更新檢測單元,用于確定視圖單元對應(yīng)的嵌入式腳本是否存在更新;
更新獲取單元,用于若存在更新,則獲取更新的嵌入式腳本,以便通過調(diào)用預(yù)置的腳本引擎執(zhí)行更新的嵌入式腳本,控制視圖單元的元素,樣式,和/或數(shù)據(jù)內(nèi)容。
在這種實(shí)現(xiàn)方式下,更新檢測單元可以包括:
版本信息發(fā)送單元,用于確定本地緩存的嵌入式腳本的第一版本信息,并發(fā)送至腳本服務(wù)器,以便腳本服務(wù)器根據(jù)第一版本信息確定嵌入式腳本是否存在更新,并在存在更新時返回更新指令;
更新獲取單元,包括:
第一腳本下載單元,用于在接收到更新指令后,根據(jù)預(yù)置網(wǎng)絡(luò)地址訪問腳本服務(wù)器,下載更新的嵌入式腳本并保存在本地緩存中。
在另一種實(shí)現(xiàn)方式下,移動終端設(shè)備上應(yīng)用頁面的展示裝置還可以包括:
通知接收單元,用于接收腳本服務(wù)器下發(fā)的嵌入式腳本的版本推送通知,版本推送通知中包括在腳本服務(wù)器中已更新嵌入式腳本的第二版本信息;
在這種實(shí)現(xiàn)方式下,更新檢測單元可以包括:
將第二版本信息與本地緩存的對應(yīng)嵌入式腳本的版本進(jìn)行比對,根據(jù)比對結(jié)果確定嵌入式腳本是否存在更新;
更新獲取單元可以包括:
第二腳本下載單元,用于若存在更新,根據(jù)預(yù)置網(wǎng)絡(luò)地址訪問腳本服務(wù)器,下載更新的嵌入式腳本并保存在本地緩存中。
為了實(shí)現(xiàn)移動終端設(shè)備上應(yīng)用頁面的展示裝置更廣泛的適用性,該裝置還可以包括:
運(yùn)行環(huán)境確定單元,用于根據(jù)嵌入式腳本關(guān)聯(lián)的視圖單元,確定嵌入式腳本在應(yīng)用頁面中的目標(biāo)運(yùn)行環(huán)境;
在這種實(shí)現(xiàn)方式下,腳本執(zhí)行單元可以包括:
腳本執(zhí)行子單元,用于調(diào)用預(yù)置的腳本引擎在目標(biāo)運(yùn)行環(huán)境執(zhí)行嵌入式腳本。
其中,運(yùn)行環(huán)境確定單元具體可以用于:
若嵌入式腳本關(guān)聯(lián)的視圖單元為應(yīng)用頁面中的信息展示位,確定嵌入式腳本在應(yīng)用頁面中的目標(biāo)運(yùn)行環(huán)境為該信息展示位;
腳本執(zhí)行子單元,具體用于:
調(diào)用預(yù)置的腳本引擎執(zhí)行嵌入式腳本,以便腳本引擎在所述應(yīng)用頁面中展示所述信息展示位。
具體實(shí)現(xiàn)時,可以在應(yīng)用的本地native層定義所述信息展示位的屬性信息,以及信息展示位關(guān)聯(lián)的內(nèi)容數(shù)據(jù),所述嵌入式腳本僅用于定義信息展示位內(nèi)待展示的元素類型以及樣式;
此時,所述裝置還可以包括:
頁面數(shù)據(jù)加載單元,用于加載所述應(yīng)用頁面的頁面數(shù)據(jù),所述頁面數(shù)據(jù)中包括信息展示位的屬性信息,以及信息展示位關(guān)聯(lián)的內(nèi)容數(shù)據(jù)
初始化單元,用于利用所述信息展示位的屬性信息對所述頁面內(nèi)的信息展示位進(jìn)行初始化;
配置單元,用于將所述腳本引擎的目標(biāo)運(yùn)行環(huán)境配置為當(dāng)前信息展示位,并在調(diào)用所述腳本引擎執(zhí)行所述嵌入式腳本時,將所述當(dāng)前信息展示位關(guān)聯(lián)的內(nèi)容數(shù)據(jù)傳入所述腳本引擎,以便所述腳本引擎通過調(diào)用窗口句柄獲取所述當(dāng)前信息展示位的屬性信息,利用所述嵌入式腳本定義的元素類型以及樣式,將所述傳入的內(nèi)容數(shù)據(jù)在該信息展示位內(nèi)進(jìn)行展示。
在這種實(shí)現(xiàn)方式下,嵌入式腳本可以復(fù)用于多個視圖單元。
在同一個嵌入式腳本中,可以包括多個代碼段,每個代碼段對應(yīng)不同的內(nèi)容類型,可以對不同內(nèi)容類型的信息展示位進(jìn)行不同的展示控制,所述裝置還包括:
內(nèi)容類型信息傳入單元,用于確定當(dāng)前信息展示位的內(nèi)容類型信息,并將所述內(nèi)容類型信息傳入所述腳本引擎,以便所述嵌入式腳本根據(jù)所述內(nèi)容類型信息,調(diào)用腳本中對應(yīng)的代碼段,控制所述信息展示位的元素,樣式,和/或數(shù)據(jù)內(nèi)容。。
在另一種實(shí)現(xiàn)方式下,運(yùn)行環(huán)境確定單元具體可以用于:
若嵌入式腳本關(guān)聯(lián)的視圖單元為整個當(dāng)前應(yīng)用頁面,確定嵌入式腳本在應(yīng)用頁面中的目標(biāo)運(yùn)行環(huán)境為當(dāng)前應(yīng)用頁面;
腳本執(zhí)行子單元具體用于:
將所述腳本引擎的目標(biāo)運(yùn)行環(huán)境配置為當(dāng)前應(yīng)用頁面,調(diào)用預(yù)置的腳本引擎執(zhí)行嵌入式腳本,以便嵌入式腳本獲取整個當(dāng)前應(yīng)用頁面的待展示數(shù)據(jù),并在當(dāng)前應(yīng)用頁面中展示待展示數(shù)據(jù)。
此外,嵌入式腳本可以包括Lua腳本語言實(shí)現(xiàn)的嵌入式腳本,對應(yīng)的,預(yù) 置的腳本引擎包括Lua虛擬機(jī)。
以上介紹了本申請實(shí)施例提供的移動終端設(shè)備上應(yīng)用頁面的展示裝置,在該方法中,應(yīng)用頁面用于展示業(yè)務(wù)對象信息,應(yīng)用頁面中包括至少一個與嵌入式腳本關(guān)聯(lián)的視圖單元,嵌入式腳本用于控制所述視圖單元的元素,樣式,和/或數(shù)據(jù)內(nèi)容;對視圖單元中元素,樣式,數(shù)據(jù)內(nèi)容等的控制或操作是通過在腳本引擎的基礎(chǔ)上運(yùn)行嵌入式腳本代理完成,在進(jìn)行應(yīng)用頁面的展示時,首先確定視圖單元對應(yīng)的嵌入式腳本,進(jìn)而調(diào)用預(yù)置的腳本引擎執(zhí)行嵌入式腳本,以便在應(yīng)用頁面中展示所述視圖單元。這樣,在視圖單元中某些元素,樣式,數(shù)據(jù)內(nèi)容發(fā)生了更新時,只需更新嵌入式腳本的腳本代碼來實(shí)現(xiàn)新的控制邏輯,并調(diào)用預(yù)置的腳本引擎執(zhí)行更新的嵌入式腳本,即可完成對應(yīng)用頁面內(nèi)容及一些控制邏輯的更新,而不需要重新改寫應(yīng)用的底層代碼重新編譯來升級應(yīng)用,可以更加便捷和高效的更新移動終端設(shè)備上應(yīng)用頁面。
通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,各個實(shí)施例之間相同相似的部分互相參見即可,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)或系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的系統(tǒng)及系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。
以上對本申請所提供的移動終端設(shè)備上應(yīng)用頁面的展示方法及裝置,進(jìn)行 了詳細(xì)介紹,本文中應(yīng)用了具體個例對本申請的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。