亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

Web程序訪問本地?cái)?shù)據(jù)庫的方法及裝置的制作方法

文檔序號(hào):6402503閱讀:683來源:國(guó)知局
專利名稱:Web程序訪問本地?cái)?shù)據(jù)庫的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于通信領(lǐng)域,尤其涉及一種Web程序訪問本地?cái)?shù)據(jù)庫的方法及裝置。
背景技術(shù)
目前要做一個(gè)內(nèi)嵌html的應(yīng)用程序,如果在html中javascript腳本訪問本應(yīng)用的數(shù)據(jù)庫需要調(diào)用本地程序接口,無法直接訪問本地應(yīng)用的數(shù)據(jù)庫,需要通過應(yīng)用程序的中間件代碼來實(shí)現(xiàn)javascript腳本訪問本地?cái)?shù)據(jù)庫,而且javascript腳本與本地程序代碼互相調(diào)用的時(shí)候沒有返回值和回調(diào)函數(shù),無法像正常函數(shù)一樣進(jìn)行調(diào)用,給開發(fā)人員在程序設(shè)計(jì)上造成了很多不必要的麻煩,如果交互數(shù)據(jù)量比較大,會(huì)浪費(fèi)很多系統(tǒng)內(nèi)存,導(dǎo)致應(yīng)用程序看起來會(huì)“一卡一卡”的,用戶體驗(yàn)感不好。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種Web程序訪問本地?cái)?shù)據(jù)庫的方法及裝置,旨在解決現(xiàn)有的Web程序·無法直接訪問本地存儲(chǔ)空間的問題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種Web程序訪問本地?cái)?shù)據(jù)庫的方法,所述方法包括步驟:Web程序的javascript腳本調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù);當(dāng)所述本地?cái)?shù)據(jù)庫存在時(shí),訪問所述本地?cái)?shù)據(jù)庫。進(jìn)一步地,在執(zhí)行所述Web程序的javascript腳本調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù)之前,還包括:設(shè)置所述本地?cái)?shù)據(jù)庫的訪問權(quán)限。進(jìn)一步地,在執(zhí)行Web程序的javascript腳本調(diào)用本地?cái)?shù)據(jù)庫的接口函數(shù)之后,還包括:判斷本地?cái)?shù)據(jù)庫的訪問權(quán)限是否開啟,當(dāng)所述本地?cái)?shù)據(jù)庫的訪問權(quán)限開啟時(shí),允許訪問所述本地?cái)?shù)據(jù)庫。進(jìn)一步地,在執(zhí)行所述Web程序的javascript腳本調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù)之后,還包括:當(dāng)所述本地?cái)?shù)據(jù)庫不存在時(shí),創(chuàng)建所述本地?cái)?shù)據(jù)庫。進(jìn)一步地,在執(zhí)行所述訪問本地?cái)?shù)據(jù)庫之后,還包括:返回所述本地?cái)?shù)據(jù)庫的對(duì)象。本發(fā)明還提出一種Web程序訪問本地?cái)?shù)據(jù)庫的裝置,所述裝置包括:調(diào)用模塊,用于調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù);訪問模塊,用于當(dāng)所述本地?cái)?shù)據(jù)庫存在時(shí),訪問所述本地?cái)?shù)據(jù)庫。進(jìn)一步地,所述裝置還包括:設(shè)置權(quán)限模塊,用于設(shè)置所述本地?cái)?shù)據(jù)庫的訪問權(quán)限。進(jìn)一步地,所述裝置還包括:
判斷模塊,用于判斷本地?cái)?shù)據(jù)庫的訪問權(quán)限是否開啟,當(dāng)所述本地?cái)?shù)據(jù)庫的訪問權(quán)限開啟時(shí),允許訪問所述本地?cái)?shù)據(jù)庫。進(jìn)一步地,所述裝置還包括:創(chuàng)建模塊,用于當(dāng)所述本地?cái)?shù)據(jù)庫不存在時(shí),創(chuàng)建所述本地?cái)?shù)據(jù)庫。進(jìn)一步地,所述裝置還包括:返回對(duì)象模塊,用于返回所述本地?cái)?shù)據(jù)庫的對(duì)象。本發(fā)明實(shí)施例中,在Web程序中添加了一個(gè)訪問給定路徑的數(shù)據(jù)庫的接口,使得Web程序在操作系統(tǒng)允許的條件下直接訪問本地?cái)?shù)據(jù)庫。本發(fā)明實(shí)施例克服了現(xiàn)有技術(shù)中存在的應(yīng)用程序內(nèi)嵌Web瀏覽器無法訪問本應(yīng)用數(shù)據(jù)庫的問題,提供一種應(yīng)用程序內(nèi)嵌Web瀏覽器訪問本地?cái)?shù)據(jù)庫的方法,從而使程序架構(gòu)更為合理,降低內(nèi)存損耗,用戶體驗(yàn)感更強(qiáng)。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例節(jié)省了因?yàn)榇罅康臄?shù)據(jù)交互所消耗的系統(tǒng)內(nèi)存,同時(shí)提高了代碼設(shè)計(jì)的合理性和可維護(hù)性,不僅使得開發(fā)人員更加容易的開發(fā)自己想要的應(yīng)用,而且讓應(yīng)用看起來運(yùn)行的更加流暢。


圖1是本發(fā)明實(shí)施例一提供的Web程序訪問本地?cái)?shù)據(jù)庫的方法的流程圖;圖2是本發(fā)明實(shí)施例二提供的Web程序訪問本地?cái)?shù)據(jù)庫的裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā) 明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例包括以下模塊:操作系統(tǒng)應(yīng)用模塊、瀏覽器內(nèi)核引擎模塊。所述操作系統(tǒng)應(yīng)用模塊是操作系統(tǒng)向第三方應(yīng)用程序提供的一系列api接口,第三方應(yīng)用程序可以通過api接口設(shè)計(jì)應(yīng)用程序的業(yè)務(wù)邏輯,從而實(shí)現(xiàn)應(yīng)用程序的功能。所述瀏覽器內(nèi)核引擎模塊是一套處理標(biāo)記語言(例如html、xml、圖片文件等)和格式化信息(例如css、xsl、xml等)并且進(jìn)行內(nèi)容展現(xiàn)的應(yīng)用軟件組件。瀏覽器通過解析上述文件,分析出需要做的業(yè)務(wù)邏輯,從而達(dá)到應(yīng)用程序本身想要的效果。本發(fā)明實(shí)施例的主要思想是將Web程序如瀏覽器顯示的界面內(nèi)嵌到操作系統(tǒng)應(yīng)用模塊中,html通過預(yù)設(shè)的javascript腳本的接口函數(shù)訪問應(yīng)用程序的數(shù)據(jù)庫,從而達(dá)到不需要調(diào)用本地應(yīng)用程序的應(yīng)用接口就可以對(duì)本地應(yīng)用程序的數(shù)據(jù)庫進(jìn)行操作。實(shí)施例一本發(fā)明實(shí)施例一提出一種Web程序訪問本地?cái)?shù)據(jù)庫的方法,該方法包括如下步驟:步驟S1、在Web程序的javascript腳本中預(yù)先設(shè)置一訪問本地?cái)?shù)據(jù)庫的接口函數(shù),即在用于解析Web程序的Javascript腳本中window對(duì)象的文件中添加新的方法。修改Web程序內(nèi)核接口,添加新的用于專門訪問本地?cái)?shù)據(jù)庫的接口 openDatabase,此接口有6個(gè)參數(shù),分別為數(shù)據(jù)庫的相對(duì)路徑、數(shù)據(jù)庫名、版本號(hào)、描述、數(shù)據(jù)庫大小、回調(diào)函數(shù)。步驟SI的同時(shí),可設(shè)置本地?cái)?shù)據(jù)庫的訪問權(quán)限:更改操作系統(tǒng)應(yīng)用模塊提供的api接口,提供設(shè)置該Web程序是否可以訪問本地?cái)?shù)據(jù)庫的權(quán)限接口,即設(shè)置是否準(zhǔn)許訪問本地?cái)?shù)據(jù)庫。瀏覽器引擎模塊文件中添加屬性供存儲(chǔ)能否訪問本地?cái)?shù)據(jù)庫的標(biāo)識(shí)。使得內(nèi)嵌Web程序訪問網(wǎng)頁的過程中更加安全。步驟S2、Web程序解析Javascript腳本,javascript腳本調(diào)用本地?cái)?shù)據(jù)庫的接口函數(shù),并進(jìn)入步驟S3。步驟S3、判斷本地?cái)?shù)據(jù)庫的訪問權(quán)限是否開啟,當(dāng)所述本地?cái)?shù)據(jù)庫的訪問權(quán)限開啟時(shí),進(jìn)入步驟S4。步驟S4、當(dāng)所述本地?cái)?shù)據(jù)庫存在時(shí),訪問所述本地?cái)?shù)據(jù)庫,傳入本地?cái)?shù)據(jù)庫的相對(duì)路徑,并進(jìn)入步驟S5 ;當(dāng)本地?cái)?shù)據(jù)庫不存在時(shí),進(jìn)入步驟S6。步驟S5、返回所述本地?cái)?shù)據(jù)庫的對(duì)象。步驟S6、創(chuàng)建所述本地?cái)?shù)據(jù)庫。本發(fā)明實(shí)施例一采用webkit開源瀏覽器引擎和android2.3開源代碼來做作為實(shí)例,實(shí)際應(yīng)用中不僅限于此,具體實(shí)施如下:1、首先在frameworks\base\core\java\android\webkit\WebSettings.java文件中添加一個(gè)供應(yīng)用程序控制是否能訪問本地?cái)?shù)據(jù)庫的接口,setLocalDatabasesEnable O。2、在 external\webkit\webcore\page\Settings.h 文件中添加屬性bool m_localDatabasesEnable,可能使用兩個(gè)方法setLocalDatabasesEnable和1calDatabasesEnable ο3、當(dāng)上層應(yīng)·用程序調(diào)用setLocalDatabasesEnable方法時(shí),會(huì)調(diào)到WebSettings.cpp文件中的Sync O函數(shù)。在Sync函數(shù)中添加設(shè)置Settings, h中的m_1calDatabasesEnable 的屬性值。4、在 external\webkit\webcore\page\DOMWindow.cpp 類中添加 openDatabase,在原來openDatabase函數(shù)的基礎(chǔ)上添加一個(gè)參數(shù)來表示要訪問的本地應(yīng)用數(shù)據(jù)庫相對(duì)路徑。5、修改 external\webkit\webcore\storage\Database.cpp 中同樣重寫openDatabase函數(shù),重寫構(gòu)造函數(shù)添加一個(gè)數(shù)據(jù)庫路徑參數(shù)。修改代碼對(duì)m_filename屬性賦值為數(shù)據(jù)庫相對(duì)路徑,調(diào)用SQLiteFileSystem的openDatabase來創(chuàng)建數(shù)據(jù)庫。6、最后可以寫一段javascript腳本,javascript腳本中調(diào)用的openDatabase接口其中一個(gè)參數(shù)填寫要訪問本應(yīng)用程序的相對(duì)路徑名稱,該javascript腳本用于測(cè)試本方法添加的接口函數(shù)。本發(fā)明實(shí)施例一的技術(shù)方案能通過解析html文件中的javascript腳本來訪問嵌AWeb程序的本地應(yīng)用程序的數(shù)據(jù)庫,使得該應(yīng)用程序運(yùn)行時(shí)所耗費(fèi)系統(tǒng)內(nèi)存更少。進(jìn)一步地,還可設(shè)置Web程序訪問本地?cái)?shù)據(jù)庫的權(quán)限,使本地?cái)?shù)據(jù)庫的訪問更為安全。實(shí)施例二本發(fā)明實(shí)施例二提供一種Web程序訪問本地?cái)?shù)據(jù)庫的裝置,如圖2所示,所述裝置包括:設(shè)置權(quán)限模塊10,用于設(shè)置所述本地?cái)?shù)據(jù)庫的訪問權(quán)限;調(diào)用模塊20,用于調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù);判斷模塊30,用于判斷是否開啟本地?cái)?shù)據(jù)庫訪問權(quán)限,當(dāng)所述本地?cái)?shù)據(jù)庫訪問權(quán)限開啟時(shí),允許訪問所述本地?cái)?shù)據(jù)庫;訪問模塊40,用于當(dāng)所述本地?cái)?shù)據(jù)庫存在時(shí),訪問所述本地?cái)?shù)據(jù)庫;創(chuàng)建模塊50,用于當(dāng)所述本地?cái)?shù)據(jù)庫不存在時(shí),創(chuàng)建所述本地?cái)?shù)據(jù)庫;返回對(duì)象模塊60,用于返回所述本地?cái)?shù)據(jù)庫的對(duì)象。本發(fā)明實(shí)施例二的裝置在Web程序的javascript腳本中預(yù)先設(shè)置一訪問本地?cái)?shù)據(jù)庫的接口函數(shù),即在用于解析Web程序的Javascript腳本中window對(duì)象的文件中添加新的方法。修改Web程序內(nèi)核接口,添加新的用于專門訪問本地?cái)?shù)據(jù)庫的接口openDatabase,此接口有6個(gè)參數(shù),分別為數(shù)據(jù)庫的相對(duì)路徑、數(shù)據(jù)庫名、版本號(hào)、描述、數(shù)據(jù)庫大小、回調(diào)函數(shù)。同時(shí)設(shè)置權(quán)限模塊10可更改操作系統(tǒng)應(yīng)用模塊提供的api接口,提供設(shè)置該Web程序是否可以訪問本地?cái)?shù)據(jù)庫的權(quán)限接口,即設(shè)置是否準(zhǔn)許訪問本地?cái)?shù)據(jù)庫。瀏覽器引擎模塊文件中添加屬性供存儲(chǔ)能否訪問本地?cái)?shù)據(jù)庫的標(biāo)識(shí)。使得內(nèi)嵌Web程序訪問網(wǎng)頁的過程中更加安全。Web程序解析Javascript腳本時(shí),調(diào)用模塊20調(diào)用本地?cái)?shù)據(jù)庫的接口函數(shù),并通知判斷模塊30判斷本地?cái)?shù)據(jù)庫的訪問權(quán)限是否開啟,如開啟,則訪問模塊40訪問本地?cái)?shù)據(jù)庫。本地?cái)?shù)據(jù)庫存在時(shí),訪問模塊40傳入本地?cái)?shù)據(jù)庫的相對(duì)路徑,再通過返回對(duì)象模塊60返回所述本地?cái)?shù)據(jù)庫的對(duì)象。如該本地?cái)?shù)據(jù)庫不存在,則由創(chuàng)建模塊50創(chuàng)建所述本地?cái)?shù)據(jù)庫。本發(fā)明實(shí)施例二的裝置能通過解析html 文件中的javascript腳本來訪問嵌入Web程序的本地應(yīng)用程序的數(shù)據(jù)庫,使得該應(yīng)用程序運(yùn)行時(shí)所耗費(fèi)系統(tǒng)內(nèi)存更少。進(jìn)一步地,還可設(shè)置Web程序訪問本地?cái)?shù)據(jù)庫的權(quán)限,使本地?cái)?shù)據(jù)庫的訪問更為安全。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種Web程序訪問本地?cái)?shù)據(jù)庫的方法,其特征在于,所述方法包括步驟: Web程序的javascript腳本調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù); 當(dāng)所述本地?cái)?shù)據(jù)庫存在時(shí),訪問所述本地?cái)?shù)據(jù)庫。
2.如權(quán)利要求1所述的方法,其特征在于,在執(zhí)行所述Web程序的javascript腳本調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù)之前,還包括: 設(shè)置所述本地?cái)?shù)據(jù)庫的訪問權(quán)限。
3.如權(quán)利要求2所述的方法,其特征在于,在執(zhí)行Web程序的javascript腳本調(diào)用本地?cái)?shù)據(jù)庫的接口函數(shù)之后,還包括: 判斷本地?cái)?shù)據(jù)庫的訪問權(quán)限是否開啟,當(dāng)所述本地?cái)?shù)據(jù)庫的訪問權(quán)限開啟時(shí),允許訪問所述本地?cái)?shù)據(jù)庫。
4.如權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,在執(zhí)行所述Web程序的javascript腳本 調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù)之后,還包括: 當(dāng)所述本地?cái)?shù)據(jù)庫不存在時(shí),創(chuàng)建所述本地?cái)?shù)據(jù)庫。
5.如權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,在執(zhí)行所述訪問本地?cái)?shù)據(jù)庫之后,還包括: 返回所述本地?cái)?shù)據(jù)庫的對(duì)象。
6.一種Web程序訪問本地?cái)?shù)據(jù)庫的裝置,其特征在于,所述裝置包括: 調(diào)用模塊,用于調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù); 訪問模塊,用于當(dāng)所述本地?cái)?shù)據(jù)庫存在時(shí),訪問所述本地?cái)?shù)據(jù)庫。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 設(shè)置權(quán)限模塊,用于設(shè)置所述本地?cái)?shù)據(jù)庫的訪問權(quán)限。
8.如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于判斷本地?cái)?shù)據(jù)庫的訪問權(quán)限是否開啟,當(dāng)所述本地?cái)?shù)據(jù)庫的訪問權(quán)限開啟時(shí),允許訪問所述本地?cái)?shù)據(jù)庫。
9.如權(quán)利要求6至8中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 創(chuàng)建模塊,用于當(dāng)所述本地?cái)?shù)據(jù)庫不存在時(shí),創(chuàng)建所述本地?cái)?shù)據(jù)庫。
10.如權(quán)利要求6至8中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 返回對(duì)象模塊,用于返回所述本地?cái)?shù)據(jù)庫的對(duì)象。
全文摘要
本發(fā)明適用于通信領(lǐng)域,提供了一種Web程序訪問本地?cái)?shù)據(jù)庫的方法及裝置,所述方法包括步驟Web程序的javascript腳本調(diào)用預(yù)設(shè)的本地?cái)?shù)據(jù)庫的接口函數(shù);當(dāng)所述本地?cái)?shù)據(jù)庫存在時(shí),訪問所述本地?cái)?shù)據(jù)庫。本發(fā)明提供的方法和裝置可以使Web程序直接訪問本地?cái)?shù)據(jù)庫。
文檔編號(hào)G06F9/46GK103235739SQ20131014846
公開日2013年8月7日 申請(qǐng)日期2013年4月25日 優(yōu)先權(quán)日2013年4月25日
發(fā)明者李全永 申請(qǐng)人:深圳市中興移動(dòng)通信有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1