一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),屬于移動(dòng)互聯(lián)網(wǎng)領(lǐng)域。該框架系統(tǒng)主要由前端邏輯層、底層原生層及中轉(zhuǎn)服務(wù)層構(gòu)成,所述前端邏輯層通過HTML、CSS、JavaScript所構(gòu)成的組件實(shí)現(xiàn)跨平臺(tái)的應(yīng)用開發(fā)、與底層原生層開放的JavaScript接口配合實(shí)現(xiàn)手機(jī)原生功能的調(diào)用;所述底層原生層為前端組件庫開放JavaScript接口以實(shí)現(xiàn)手機(jī)原生功能的調(diào)用、通過服務(wù)中轉(zhuǎn)層提供服務(wù)地址保護(hù);所述中轉(zhuǎn)服務(wù)層通過中轉(zhuǎn)分發(fā)對(duì)后臺(tái)服務(wù)地址進(jìn)行保護(hù)、通過配置實(shí)現(xiàn)測(cè)試環(huán)境和正式環(huán)境的切換。與現(xiàn)有技術(shù)相比,本發(fā)明的開發(fā)框架系統(tǒng)可以解決開發(fā)者無法自由擴(kuò)展和后臺(tái)業(yè)務(wù)地址及數(shù)據(jù)源暴露的問題,具有很好的推廣應(yīng)用價(jià)值。
【專利說明】一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)互聯(lián)網(wǎng)領(lǐng)域,具體地說是一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng)。
【背景技術(shù)】
[0002]隨著智能移動(dòng)終端的普及和移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)應(yīng)用的市場(chǎng)需求不斷擴(kuò)大,PC上的應(yīng)用和功能開始往移動(dòng)終端擴(kuò)展。而面對(duì)眾多的同質(zhì)化移動(dòng)應(yīng)用,用戶對(duì)移動(dòng)應(yīng)用的品質(zhì)要求也在逐步提升。對(duì)于開發(fā)者來說,要從PC軟件開發(fā)向移動(dòng)開發(fā)過渡,一方面要熟悉移動(dòng)終端的諸多新功能,另一方面也要考慮多系統(tǒng)多屏幕尺寸的兼容性。若采用原生語言開發(fā),則存在以下幾個(gè)問題:
(1)針對(duì)多個(gè)操作系統(tǒng)的多種原生語言的學(xué)習(xí)成本高,人力資源需求大;
(2)同一軟件在多個(gè)操作系統(tǒng)下的開發(fā)過程重復(fù),開發(fā)成本浪費(fèi);
(3)多版本的迭代過程緩慢,需求無法快速得到響應(yīng)和滿足。
[0003]在這樣的情況下,本領(lǐng)域開發(fā)了許多跨平臺(tái)的移動(dòng)應(yīng)用開發(fā)框架,基本的實(shí)現(xiàn)方式為:允許用戶通過HTML、CSS和JavaScript搭建前端功能,然后將其封裝入不同平臺(tái)的底層容器中,實(shí)現(xiàn)多系統(tǒng)的分發(fā)。
[0004]然而當(dāng)前的移動(dòng)應(yīng)用開發(fā)框架大多為封閉系統(tǒng),一方面,用戶所需但是當(dāng)前系統(tǒng)不具備的功能,無法得到及時(shí)的開發(fā)和擴(kuò)展;另一方面,使用WEB語言搭建的系統(tǒng),前端邏輯由HTML和相應(yīng)的JavaScript實(shí)現(xiàn),后臺(tái)服務(wù)的業(yè)務(wù)地址會(huì)被暴露出來,對(duì)后臺(tái)程序和數(shù)據(jù)的穩(wěn)定性和安全性有極大威脅。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的技術(shù)任務(wù)是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng)。該框架系統(tǒng)可以解決當(dāng)前移動(dòng)開發(fā)和現(xiàn)有移動(dòng)應(yīng)用開發(fā)框架所遇到的開發(fā)者無法自由擴(kuò)展和后臺(tái)業(yè)務(wù)地址及數(shù)據(jù)源暴露的問題。
[0006]本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的:一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),其特征在于:主要由前端邏輯層、底層原生層及中轉(zhuǎn)服務(wù)層構(gòu)成,
所述前端邏輯層通過HTML、CSS、JavaScript所構(gòu)成的組件實(shí)現(xiàn)跨平臺(tái)的應(yīng)用開發(fā)、與底層原生層開放的JavaScript接口配合實(shí)現(xiàn)手機(jī)原生功能的調(diào)用、提供可擴(kuò)展的規(guī)范以豐富現(xiàn)有組件庫;
所述底層原生層為前端組件庫開放JavaScript接口以實(shí)現(xiàn)手機(jī)原生功能的調(diào)用、通過服務(wù)中轉(zhuǎn)層提供服務(wù)地址保護(hù)、提供可擴(kuò)展的規(guī)范以豐富現(xiàn)有接口 ;
所述中轉(zhuǎn)服務(wù)層通過中轉(zhuǎn)分發(fā)對(duì)后臺(tái)服務(wù)地址進(jìn)行保護(hù)、通過配置實(shí)現(xiàn)測(cè)試環(huán)境和正式環(huán)境的切換。
[0007]所述前端邏輯層中由HTML負(fù)責(zé)主體內(nèi)容呈現(xiàn),CSS負(fù)責(zé)頁面樣式調(diào)整,JavaScript負(fù)責(zé)前端邏輯的處理。
[0008]前端邏輯層包括前端表現(xiàn)組件及前端組件的擴(kuò)展接口文檔,所述前端表現(xiàn)組件包括圖表組件、表單組件、按鈕組件、表格組件、滑動(dòng)圖片展示組件。
[0009]底層原生層包括原生功能接口及底層原生層的擴(kuò)展接口文檔,所述原生功能接口包括調(diào)取攝像頭、調(diào)取麥克風(fēng)、調(diào)取藍(lán)牙設(shè)備、獲取系統(tǒng)基本信息、獲取地理位置信息、獲取文件系統(tǒng)。
[0010]所述中轉(zhuǎn)服務(wù)層負(fù)責(zé)接收前端發(fā)起的由原生層傳遞的數(shù)據(jù)請(qǐng)求,并將其分發(fā)到具體業(yè)務(wù)地址,然后將返回值通過原生層傳遞回前端。
[0011]本發(fā)明所述原生應(yīng)用(功能):指用手機(jī)操作系統(tǒng)直接支持的編程語言編寫的應(yīng)用,可以調(diào)用系統(tǒng)的硬件功能,其中安卓(Android)操作系統(tǒng)對(duì)應(yīng)Java,蘋果(10S)操作系統(tǒng)對(duì)應(yīng) Objective-C 和 Swift。
[0012]底層:指應(yīng)用中使用原生語言開發(fā)的部分,特別的,在本發(fā)明中指使用原生語言開發(fā)的底層容器,用于承載前端的Web部分。
[0013]前端:指應(yīng)用中使用Web開發(fā)語言(如HTML、CSS、JavaScript等)開發(fā)的部分,特別的,在本發(fā)明中指被底層原生容器承載的部分,用于實(shí)現(xiàn)主要的應(yīng)用邏輯。
[0014]業(yè)務(wù)服務(wù):指應(yīng)用正常使用所對(duì)應(yīng)的具有生產(chǎn)和使用價(jià)值的后臺(tái)服務(wù),區(qū)別于中轉(zhuǎn)服務(wù)。
[0015]數(shù)據(jù)源:指應(yīng)用所使用的業(yè)務(wù)服務(wù)中數(shù)據(jù)的來源。
[0016]中轉(zhuǎn)服務(wù):指本發(fā)明所提出的,應(yīng)用與所需業(yè)務(wù)服務(wù)之間的后臺(tái)服務(wù),用于保護(hù)業(yè)務(wù)服務(wù)地址的私密性和安全性,區(qū)別于業(yè)務(wù)服務(wù)。
[0017]開發(fā)環(huán)境:指應(yīng)用進(jìn)行開發(fā)和測(cè)試時(shí)所使用的非正式環(huán)境。
[0018]生產(chǎn)環(huán)境:指應(yīng)用實(shí)際投入生產(chǎn)和使用時(shí)所使用的正式環(huán)境。
[0019]基于本發(fā)明的移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),可通過已有的前端和原生通用組件完成跨平臺(tái)、多屏幕尺寸的移動(dòng)應(yīng)用的快速生成;同時(shí),基于框架提供的擴(kuò)展接口和文檔,用戶可方便的自主開發(fā)前端組件和原生功能,滿足個(gè)性化需求;第三,通過中間JavaScript接口,前端WEB頁面可直接調(diào)用移動(dòng)設(shè)備的原生功能,讓生成的混生應(yīng)用擁有Web應(yīng)用的反應(yīng)速度和原生應(yīng)用的使用體驗(yàn);第四,通過特有的中轉(zhuǎn)服務(wù),可保護(hù)后臺(tái)業(yè)務(wù)地址和業(yè)務(wù)數(shù)據(jù)源的隱密性和安全性。
[0020]綜合以上幾點(diǎn),在保證體驗(yàn)和安全性的同時(shí),擁有PC端前端開發(fā)經(jīng)驗(yàn)的開發(fā)者即可快速生成個(gè)性化高品質(zhì)的移動(dòng)應(yīng)用,降低了開發(fā)人員的學(xué)習(xí)成本和開發(fā)成本,縮短了開發(fā)時(shí)間、提高了移動(dòng)應(yīng)用的開發(fā)效率。
【專利附圖】
【附圖說明】
[0021]附圖1是本發(fā)明基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng)的組成體系示意圖;
附圖2是本發(fā)明框架系統(tǒng)中對(duì)系統(tǒng)原生功能調(diào)用的流程示意圖;
附圖3是本發(fā)明框架系統(tǒng)中對(duì)中轉(zhuǎn)服務(wù)調(diào)用的流程示意圖。
【具體實(shí)施方式】
[0022]參照說明書附圖以具體實(shí)施例對(duì)本發(fā)明的一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng)作以下詳細(xì)地說明。
[0023]如附圖1所示,本發(fā)明的移動(dòng)應(yīng)用開發(fā)框架系統(tǒng)由前端邏輯層、底層原生層和中轉(zhuǎn)服務(wù)層三部分組成。
[0024]其中,前端邏輯層由HTML負(fù)責(zé)主體內(nèi)容呈現(xiàn),CSS負(fù)責(zé)頁面樣式調(diào)整、JavaScript負(fù)責(zé)前端邏輯的處理。三者確保了應(yīng)用的主體功能是跨平臺(tái)的,并且框架內(nèi)采用響應(yīng)式的前端布局設(shè)計(jì),可自動(dòng)適應(yīng)多種不同屏幕尺寸。同時(shí),框架自身已提供了豐富的前端表現(xiàn)組件,包括但不限于圖表組件、表單組件、按鈕組件、表格組件、滑動(dòng)圖片展示組件等,通過簡(jiǎn)單配置即可直接引入應(yīng)用當(dāng)中;而且,框架提供了前端組件的擴(kuò)展接口文檔,開發(fā)者依照文檔,可快速構(gòu)建個(gè)性化的前端組件。另外,通過底層原生層暴露的JavaScript接口,前端組件可以直接調(diào)用移動(dòng)終端的原生功能。最后,前端部分可通過底層原生層暴露的中轉(zhuǎn)服務(wù)接口訪問業(yè)務(wù)服務(wù),在不暴露業(yè)務(wù)地址的情況下實(shí)現(xiàn)數(shù)據(jù)傳輸。
[0025]底層原生層由原生語言編寫,其中安卓(Android)對(duì)應(yīng)Java,蘋果操作系統(tǒng)(10S)對(duì)應(yīng)Objective-C。框架的底層原生層提供了對(duì)移動(dòng)終端原生功能的封裝、并暴露出JavaScript接口供前端JavaScript調(diào)用。同時(shí),框架自身已提供了豐富的原生功能接口,包括但不限于調(diào)取攝像頭、調(diào)取麥克風(fēng)、調(diào)取藍(lán)牙設(shè)備、獲取系統(tǒng)基本信息、獲取地理位置信息、獲取文件系統(tǒng)等,前端可以直接進(jìn)行調(diào)用;而且框架提供了底層原生層的擴(kuò)展接口文檔,開發(fā)者依照文檔,可快速擴(kuò)展底層功能,滿足個(gè)性化需求。另外,底層原生層與中轉(zhuǎn)服務(wù)對(duì)接,將中轉(zhuǎn)服務(wù)地址封裝在原生代碼中,并向前端暴露中轉(zhuǎn)服務(wù)接口。
[0026]中轉(zhuǎn)服務(wù)層作為接口,對(duì)實(shí)現(xiàn)語言沒有特殊要求,可使用Java、PHP、ASP.NET等語言編寫,同時(shí),傳遞的參數(shù)格式支持字符串、數(shù)組、XML和JSON字符串。中轉(zhuǎn)服務(wù)負(fù)責(zé)接收前端發(fā)起的由原生層傳遞的數(shù)據(jù)請(qǐng)求,并將其分發(fā)到具體業(yè)務(wù)地址,然后將返回值通過原生層傳遞回前端。同時(shí),本發(fā)明提供了對(duì)于開發(fā)環(huán)境和生產(chǎn)環(huán)境的中轉(zhuǎn)服務(wù)的配置切換功能,通過本發(fā)明開發(fā)的應(yīng)用可以通過配置,在開發(fā)環(huán)境模擬的中轉(zhuǎn)服務(wù)下進(jìn)行測(cè)試,當(dāng)測(cè)試通過后,可通過配置切換為生產(chǎn)環(huán)境,直接投入使用。
[0027]上述框架系統(tǒng)中系統(tǒng)原生功能調(diào)用流程,如附圖2所示:
步驟1:前端發(fā)起系統(tǒng)功能的調(diào)用請(qǐng)求,將調(diào)用內(nèi)容和回調(diào)函數(shù)傳給原生層相應(yīng)的JavaScript 接 P ;
步驟2 JavaScript接口將調(diào)用內(nèi)容解析為原生調(diào)用請(qǐng)求,傳遞給相應(yīng)的原生層;
步驟3:原生層接受調(diào)用請(qǐng)求,并調(diào)用移動(dòng)終端的相應(yīng)功能;
步驟4:移動(dòng)終端將調(diào)用結(jié)果返回給原生層;
步驟5:原生層將移動(dòng)終端功能的調(diào)用結(jié)果返回給JavaScript接口 ;
步驟6 JavaScript接口根據(jù)調(diào)用結(jié)果,將對(duì)應(yīng)的回調(diào)函數(shù)請(qǐng)求返回給前端;
步驟7:前端執(zhí)行相應(yīng)的回調(diào)函數(shù),完成原生功能的調(diào)用。
[0028]中轉(zhuǎn)服務(wù)的調(diào)用流程,如附圖3所示:
步驟1:前端發(fā)起業(yè)務(wù)數(shù)據(jù)接口的調(diào)用請(qǐng)求,將調(diào)用內(nèi)容和回調(diào)函數(shù)傳給原生層相應(yīng)的 JavaScript 接口 ;
步驟2 JavaScript接口將調(diào)用內(nèi)容解析為業(yè)務(wù)數(shù)據(jù)接口調(diào)用請(qǐng)求,傳遞給相應(yīng)的原生層;步驟3:原生層接受調(diào)用請(qǐng)求,將參數(shù)傳遞給中轉(zhuǎn)服務(wù);
步驟4:中轉(zhuǎn)服務(wù)根據(jù)傳入?yún)?shù)將請(qǐng)求分發(fā)給對(duì)應(yīng)的業(yè)務(wù)邏輯地址;
步驟5:業(yè)務(wù)邏輯地址將執(zhí)行結(jié)果返回給中轉(zhuǎn)服務(wù);
步驟6:中轉(zhuǎn)服務(wù)將執(zhí)行結(jié)果返回給原生層;
步驟7:原生層將執(zhí)行結(jié)果返回給JavaScript接口 ;
步驟8 JavaScript接口根據(jù)執(zhí)行情況,將執(zhí)行結(jié)果和對(duì)應(yīng)的回調(diào)函數(shù)返回給前端;步驟9:前端執(zhí)行相應(yīng)的回調(diào)函數(shù),完成數(shù)據(jù)透?jìng)鳌?br>
【權(quán)利要求】
1.一種基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),其特征在于:主要由前端邏輯層、底層原生層及中轉(zhuǎn)服務(wù)層構(gòu)成, 所述前端邏輯層通過HTML、CSS、JavaScript所構(gòu)成的組件實(shí)現(xiàn)跨平臺(tái)的應(yīng)用開發(fā)、與底層原生層開放的JavaScript接口配合實(shí)現(xiàn)手機(jī)原生功能的調(diào)用、提供可擴(kuò)展的規(guī)范以豐富現(xiàn)有組件庫; 所述底層原生層為前端組件庫開放JavaScript接口以實(shí)現(xiàn)手機(jī)原生功能的調(diào)用、通過服務(wù)中轉(zhuǎn)層提供服務(wù)地址保護(hù)、提供可擴(kuò)展的規(guī)范以豐富現(xiàn)有接口 ; 所述中轉(zhuǎn)服務(wù)層通過中轉(zhuǎn)分發(fā)對(duì)后臺(tái)服務(wù)地址進(jìn)行保護(hù)、通過配置實(shí)現(xiàn)測(cè)試環(huán)境和正式環(huán)境的切換。
2.根據(jù)權(quán)利要求1所述的基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),其特征在于前端邏輯層中由HTML負(fù)責(zé)主體內(nèi)容呈現(xiàn),CSS負(fù)責(zé)頁面樣式調(diào)整,JavaScript負(fù)責(zé)前端邏輯的處理。
3.根據(jù)權(quán)利要求1所述的基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),其特征在于前端邏輯層包括前端表現(xiàn)組件及前端組件的擴(kuò)展接口文檔,所述前端表現(xiàn)組件包括圖表組件、表單組件、按鈕組件、表格組件、滑動(dòng)圖片展示組件。
4.根據(jù)權(quán)利要求1所述的基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),其特征在于底層原生層包括原生功能接口及底層原生層的擴(kuò)展接口文檔,所述原生功能接口包括調(diào)取攝像頭、調(diào)取麥克風(fēng)、調(diào)取藍(lán)牙設(shè)備、獲取系統(tǒng)基本信息、獲取地理位置信息、獲取文件系統(tǒng)。
5.根據(jù)權(quán)利要求1所述的基于通用組件和中轉(zhuǎn)服務(wù)的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)框架系統(tǒng),其特征在于中轉(zhuǎn)服務(wù)層負(fù)責(zé)接收前端發(fā)起的由原生層傳遞的數(shù)據(jù)請(qǐng)求,并將其分發(fā)到具體業(yè)務(wù)地址,然后將返回值通過原生層傳遞回前端。
【文檔編號(hào)】G06F9/44GK104239071SQ201410540158
【公開日】2014年12月24日 申請(qǐng)日期:2014年10月13日 優(yōu)先權(quán)日:2014年10月13日
【發(fā)明者】肖雪, 馮向陽, 吳志強(qiáng), 馬群 申請(qǐng)人:浪潮通信信息系統(tǒng)有限公司