組成完整的頁(yè)面。緩存數(shù)據(jù)一般指廣告或新聞等相關(guān)的視頻、圖片和文字的信息。緩存數(shù)據(jù)的更新周期遠(yuǎn)小于資源文件的更新周期。
[0033]混合模式移動(dòng)應(yīng)用(Hybrid App):是指介于網(wǎng)絡(luò)應(yīng)用(Web App)、本地應(yīng)用(Native App)這兩者之間的應(yīng)用,兼具“本地應(yīng)用良好用戶交互體驗(yàn)的優(yōu)勢(shì)”和“網(wǎng)絡(luò)應(yīng)用跨平臺(tái)開發(fā)的優(yōu)勢(shì)”?;旌夏J揭苿?dòng)應(yīng)用雖然看上去是一個(gè)本地應(yīng)用,但只有一個(gè)用戶界面(User Interface,簡(jiǎn)稱:UI)網(wǎng)絡(luò)視圖(WebView),實(shí)質(zhì)是一個(gè)網(wǎng)絡(luò)應(yīng)用。
[0034]本地應(yīng)用(NativeApp):又稱為原生態(tài)應(yīng)用,是一種基于智能手機(jī)本地操作系統(tǒng)如1S、安卓(Android)、WP并使用原生程序編寫運(yùn)行的第三方應(yīng)用程序。
[0035]H5頁(yè)面:就是HTMLSt3HTMLS是用于取代HTML 4.01和XHTML 1.0標(biāo)準(zhǔn)的HTML標(biāo)準(zhǔn)版本,現(xiàn)在仍處于發(fā)展階段,但大部分瀏覽器已經(jīng)支持某些HTML5技術(shù)。HTML 5有兩大特點(diǎn):首先,強(qiáng)化了 Web網(wǎng)頁(yè)的表現(xiàn)性能。其次,追加了本地?cái)?shù)據(jù)庫(kù)等Web應(yīng)用的功能。
[0036]請(qǐng)參考圖1,其示出了本公開實(shí)施例提供的頁(yè)面加載、回退方法所涉及的一種實(shí)施環(huán)境的結(jié)構(gòu)示意圖,該實(shí)施環(huán)境包括終端100和服務(wù)器200。其中,終端100與服務(wù)器200通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行通信。
[0037]終端100可以為智能手機(jī)、具有電話功能的平板電腦等基于混合模式移動(dòng)應(yīng)用(本地應(yīng)用+H5頁(yè)面)的客戶端設(shè)備。服務(wù)器200可以是一臺(tái)服務(wù)器,或者由若干臺(tái)服務(wù)器組成的服務(wù)器集群,或者是一個(gè)云計(jì)算服務(wù)中心。
[0038]圖2是根據(jù)一示例性實(shí)施例示出的一種頁(yè)面加載方法的流程圖。本實(shí)施例提供一種頁(yè)面加載方法,該方法應(yīng)用于頁(yè)面加載裝置中,該頁(yè)面加載裝置集成于終端中。如圖2所示,方法包括以下步驟:
[0039]在步驟201中,獲取頁(yè)面加載請(qǐng)求。
[0040]其中,頁(yè)面加載請(qǐng)求可包括對(duì)服務(wù)網(wǎng)站的訪問請(qǐng)求和顯示頁(yè)面中的超鏈接等頁(yè)面功能控件所觸發(fā)的業(yè)務(wù)功能啟動(dòng)請(qǐng)求等。上述訪問請(qǐng)求和業(yè)務(wù)功能啟動(dòng)請(qǐng)求包括但不限于用戶手動(dòng)操作客戶端設(shè)備提供的實(shí)體按鍵或虛擬按鈕進(jìn)行觸發(fā)。
[0041]在步驟202中,調(diào)用網(wǎng)絡(luò)視圖加載頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面,其中,網(wǎng)絡(luò)視圖包括第一網(wǎng)絡(luò)視圖和第二網(wǎng)絡(luò)視圖。
[0042]在第m個(gè)頁(yè)面加載請(qǐng)求時(shí)調(diào)用第一網(wǎng)絡(luò)視圖進(jìn)行頁(yè)面加載,在第m+1個(gè)頁(yè)面加載請(qǐng)求時(shí)調(diào)用第二網(wǎng)絡(luò)視圖進(jìn)行頁(yè)面加載,第m+1個(gè)頁(yè)面加載請(qǐng)求為用戶點(diǎn)擊第m個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面中的超鏈接觸發(fā)的訪問請(qǐng)求,111為正整數(shù)。
[0043]在現(xiàn)有技術(shù)中,混合模式移動(dòng)應(yīng)用為了保證流暢的頁(yè)面切換動(dòng)畫,每一個(gè)H5頁(yè)面都必須嵌入到一個(gè)本地應(yīng)用中,導(dǎo)致在開啟約5個(gè)頁(yè)面時(shí)就會(huì)因內(nèi)存溢出導(dǎo)致應(yīng)用崩潰。
[0044]為避免現(xiàn)有技術(shù)中存在的問題,本公開通過(guò)在混合模式移動(dòng)應(yīng)用中設(shè)置兩個(gè)網(wǎng)絡(luò)視圖,也即第一網(wǎng)絡(luò)視圖和第二網(wǎng)絡(luò)視圖,輪流調(diào)用這兩個(gè)網(wǎng)絡(luò)視圖加載連續(xù)獲取的兩個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面,也就是步驟202中所述的在第m個(gè)頁(yè)面加載請(qǐng)求時(shí)調(diào)用第一網(wǎng)絡(luò)視圖進(jìn)行頁(yè)面加載,在第m+1個(gè)頁(yè)面加載請(qǐng)求時(shí)調(diào)用第二網(wǎng)絡(luò)視圖進(jìn)行頁(yè)面加載。
[0045]在具體實(shí)現(xiàn)中,本公開實(shí)施例創(chuàng)建一個(gè)自定義的視圖:網(wǎng)絡(luò)視圖切換組件(WebViewSwitcher),該網(wǎng)絡(luò)視圖切換組件對(duì)外暴露一個(gè)1adUrI方法,用于加載一頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面;該網(wǎng)絡(luò)視圖切換組件內(nèi)部由兩個(gè)網(wǎng)絡(luò)視圖(WebView)組成,以下將其分別稱為WebVi由這個(gè)兩個(gè)網(wǎng)絡(luò)視圖輪流加載頁(yè)面,S卩由WebView_A加載第I個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面、第3個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面、第5個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面,等等;由WebVieW_B加載第2個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面、第4個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面、第6個(gè)頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面,等等,依次類推。
[0046]當(dāng)由WebView_A加載頁(yè)面時(shí),將WebView_A切換到前臺(tái),并將WebView_E^換到后臺(tái)。同理,當(dāng)WebView_B加載頁(yè)面時(shí),將換到前臺(tái),WebView_A切換到后臺(tái)。由于切換過(guò)程是由兩個(gè)完成,也就成了兩個(gè)普通的本地視圖(NativeView)的切換,因此,可以指定任意的本地視圖切換動(dòng)畫,從而實(shí)現(xiàn)了在網(wǎng)絡(luò)視圖上加載頁(yè)面達(dá)到本地應(yīng)用的動(dòng)畫切換體驗(yàn)。
[0047]對(duì)于第m+1個(gè)頁(yè)面加載請(qǐng)求,步驟202可以具體為:調(diào)用第一網(wǎng)絡(luò)視圖的需重寫網(wǎng)址加載方法攔截該第m+1個(gè)頁(yè)面加載請(qǐng)求;將第m+1個(gè)頁(yè)面加載請(qǐng)求傳遞給第二網(wǎng)絡(luò)視圖進(jìn)行頁(yè)面加載。
[0048]例如,參照?qǐng)D3,在加載包含統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)稱:URLH的頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面時(shí),由網(wǎng)絡(luò)視圖切換組件提供的1adUrl方法進(jìn)行加載,該方法會(huì)將該包含URLl的頁(yè)面加載請(qǐng)求傳遞給WebVieW_A,由WebView_AW載包含URLl的頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面;在包含URLl的頁(yè)面加載請(qǐng)求對(duì)應(yīng)的頁(yè)面中,點(diǎn)擊超鏈接,生成包含URL2的頁(yè)面加載請(qǐng)求;該包含URL2的頁(yè)面加載請(qǐng)求被shouldOverrideUrlLoading方法攔截,并將該包含URL2的頁(yè)面加載請(qǐng)求傳遞給WebView_B,也就是,在WebView_A中攔截到的頁(yè)面加載請(qǐng)求由WebView_B加載。同時(shí),將WebView_B切換到前臺(tái),WebVi6*_六切換到后臺(tái)。同理,基于點(diǎn)擊由WebVi ew_B加載的頁(yè)面中超鏈接生成的頁(yè)面加載請(qǐng)求被攔截并傳遞給WebView_A,并將WebView_A切換到前臺(tái),換到后臺(tái),依次循環(huán),此處不再贅述。
[0049]需說(shuō)明的是,本領(lǐng)域技術(shù)人員可以理解,其中,如圖1所示的終端100與服務(wù)器200的交互是在后臺(tái)實(shí)現(xiàn)的,不影響頁(yè)面的加載速度。
[0050]其中,上述第一網(wǎng)絡(luò)視圖和第二網(wǎng)絡(luò)視圖均為本地網(wǎng)絡(luò)視圖。
[0051]綜上所述,本實(shí)施例提供的頁(yè)面加載方法,通過(guò)兩個(gè)網(wǎng)絡(luò)視圖,即第一網(wǎng)絡(luò)視圖和第二網(wǎng)絡(luò)視圖,輪換加載頁(yè)面,實(shí)現(xiàn)頁(yè)面無(wú)限加載,嚴(yán)格限制內(nèi)存增長(zhǎng);同時(shí),所加載頁(yè)面模擬原生動(dòng)畫,從而實(shí)現(xiàn)與本地應(yīng)用保持相同的動(dòng)畫體驗(yàn),提升用戶在終端中無(wú)限加載頁(yè)面的過(guò)程中的體驗(yàn);另外,在內(nèi)容推薦的場(chǎng)景中,還能夠提升加載速度。
[0052]基于上述頁(yè)面加載方法,本公開還提供一種頁(yè)面回退方法。以下對(duì)該頁(yè)面回退方法進(jìn)行解釋說(shuō)明。其中,對(duì)于本公開實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本公開頁(yè)面加載方法實(shí)施例。
[0053]圖4是根據(jù)一示例性實(shí)施例示出的一種頁(yè)面回退方法的流程圖。本實(shí)施例提供一種頁(yè)面回退方法,該方法應(yīng)用于頁(yè)面回退裝置中,該頁(yè)面回退裝置集成于終端中。如圖4所示,方法包括以下步驟:
[0054]在步驟401中,獲取頁(yè)面回退請(qǐng)求。
[0055]在步驟402中,調(diào)用網(wǎng)絡(luò)視圖顯示所述頁(yè)面回退請(qǐng)求對(duì)應(yīng)的頁(yè)面,若當(dāng)前顯示頁(yè)面為調(diào)用第一網(wǎng)絡(luò)視圖加載的,在第η個(gè)頁(yè)面回退請(qǐng)求時(shí)調(diào)用第二網(wǎng)絡(luò)視圖進(jìn)行頁(yè)面顯示,在第η+1個(gè)頁(yè)面回退請(qǐng)求時(shí)調(diào)用第一網(wǎng)絡(luò)視圖進(jìn)行頁(yè)面回退。
[0056]其中,第η個(gè)頁(yè)面回退請(qǐng)求對(duì)應(yīng)的頁(yè)面為調(diào)用第二網(wǎng)絡(luò)視圖進(jìn)行加載的。第η+1個(gè)頁(yè)面回退請(qǐng)求對(duì)應(yīng)的頁(yè)面為調(diào)用第一網(wǎng)絡(luò)視圖進(jìn)行加載的。且,第η+1個(gè)頁(yè)面回退請(qǐng)求為用戶點(diǎn)擊第η個(gè)頁(yè)面回退請(qǐng)求對(duì)應(yīng)的頁(yè)面中的回退按鈕觸發(fā)的訪問請(qǐng)求,η為正整數(shù)。
[0057]網(wǎng)絡(luò)視圖本身具有瀏覽歷史功能,本公開實(shí)施例借助這個(gè)功能實(shí)現(xiàn)流暢的頁(yè)面回退效果。假設(shè)當(dāng)前已經(jīng)加載了多個(gè)頁(yè)面,并且當(dāng)前處于前臺(tái)的是WebVieW_B,被加載的頁(yè)面為url_n。此時(shí),點(diǎn)擊url_n中的回退(back,或稱為“后退”)按鈕回到上一個(gè)頁(yè)面,即url_n-
1。由于在加載頁(yè)面時(shí)采用兩個(gè)網(wǎng)絡(luò)視圖交替加載,因此,url_n-l是由WebView_A加載的。此時(shí),只需要直接將WebVi ew_A切換到前臺(tái),并將WebVi ew_B切換到后臺(tái)即可,WebVi ew_Af需要執(zhí)行回退(goBack)操作,因此該回退頁(yè)面的過(guò)程非常流暢。切換后,對(duì)于WebView_B,由于已經(jīng)回退頁(yè)面,因此url_n不再需要,此時(shí)對(duì)WebView_B執(zhí)行回退操作,也就是讓W(xué)ebView_B顯示url_n-2,為下一次回退頁(yè)面做好準(zhǔn)備,以便下一次回退時(shí)WebVi6*_13可以不做任何操作的直接切換到前臺(tái),從而保證回退的流暢性。
[0058]綜上所述,本實(shí)施例提供的頁(yè)面回退方法,通過(guò)兩個(gè)網(wǎng)絡(luò)視圖,即第一網(wǎng)絡(luò)視圖和第二網(wǎng)絡(luò)視圖,輪換