CN106775719A - 基于移动终端的跨平台的轻量数据库封装方法及系统 - Google Patents
基于移动终端的跨平台的轻量数据库封装方法及系统 Download PDFInfo
- Publication number
- CN106775719A CN106775719A CN201611166741.2A CN201611166741A CN106775719A CN 106775719 A CN106775719 A CN 106775719A CN 201611166741 A CN201611166741 A CN 201611166741A CN 106775719 A CN106775719 A CN 106775719A
- Authority
- CN
- China
- Prior art keywords
- ios
- url
- javascript
- platform
- android
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及移动互联网数据库技术,其公开了一种基于移动终端的跨平台的轻量数据库封装方法及系统,实现了在HTML页面跨平台(iOS和Android)的数据库操作,有效解决了基于不同移动智能终端平台在HTML页面对数据库操作功能重复开发的问题。该方法包括:a.使用JavaScript调用操作数据库的exeSql函数,并传入操作数据库的命令;b.exeSql函数调用JavaScript设备识别模块,获得当前设备所属平台;c.如果当前设备所属平台为Android平台,则调用JavascriptInterface扩展函数接口,如果当前设备所属平台为iOS平台,则构建操作iOS原生数据库模块的URL并调用URL发生器。
Description
技术领域
本发明涉及移动互联网数据库技术,具体涉及一种基于移动终端的跨平台的轻量数据库封装方法及系统。
背景技术
目前,随着互联网和通信技术的快速发展,移动通信与互联网融合成为了移动互联网。为满足行业企业推广自身的产品和业务流程的优化,基于移动互联网技术的行业应用应运而生,帮助行业企业达到移动办公、移动工作流程管理等目标,从而提升其工作效率和企业效益,提升管理水平。
在移动终端APP的开发中,逐渐发现不同系统的应用开发会耗费开发人员大量的时间以及精力,只能以根据不同的系统开发规范去搭建不同的页面布局、不同的数据库操作方法以及不同的业务实现逻辑。比如,对于安卓(Android)应用,需要用xml进行布局,而iOS应用,则需要用xib进行布局。这些系统互不兼容,平台越多,工作量会相应叠加。
发明内容
本发明所要解决的技术问题是:一种基于移动终端的跨平台的轻量数据库封装方法及系统,实现了在HTML页面跨平台(iOS和Android)的数据库操作,有效解决了基于不同移动智能终端平台在HTML页面对数据库操作功能重复开发的问题。
本发明解决其技术问题所采用的技术方案是:
基于移动终端的跨平台的轻量数据库封装系统,包括:
Android原生数据库操作模块,其为用Android原生代码开发的操作AndroidSQLite数据库的模块;
JavascriptInterface扩展函数接口,其为供JavaScript调用的java函数,让JavaScript拥有直接操作Android原生数据库功能的能力;
iOS原生数据库操作模块,其为用iOS原生代码实现的能够操作iOS SQLite的模块;
URL拦截器,其为采用iOS实现的监听模块,用于拦截HTML页面上URL请求路径,并根据路径判断JavaScript想要调用的函数以及获得传入的参数;
JavaScript设备识别模块,其为一个JavaScript函数,该函数通过HTML DOMuserAgent属性判断浏览器类型并确定该JavaScript所在的设备是否为iOS,若不是iOS,则确定该设备为Android平台;
JavaScript URL发生器,其为一个JavaScript函数,该函数动态创建一个iframe,并为该iframe设置src属性,此时,所述的URL拦截器便可拦截该src属性值表示的路径;
操作数据库的exeSql函数,其为提供给最终调用者的接口,用于根据所述JavaScript设备识别器返回结果,确定调用Android的JavascriptInterface扩展函数接口打开Android原生数据库操作模块,还是改变页面上的iframe的src属性以便让所述URL拦截器拦截到该url并打开iOS原生数据库操作模块。
作为进一步优化,所述操作数据库的exeSql函数所带参数包含对原生数据库操作的指令,该参数在向移动终端本地传输时以字符串格式的序列号传输,并在传送至页面或移动终端本地时,反序列化成JSON对象。
此外,本发明的另一目的还在于,提出一种基于移动终端的跨平台的轻量数据库封装方法,其包括以下步骤:
a.使用JavaScript调用操作数据库的exeSql函数,并传入操作数据库的命令;
b.exeSql函数调用JavaScript设备识别模块,获得当前设备所属平台;
c.如果当前设备所属平台为Android平台,则调用JavascriptInterface扩展函数接口,该接口再调用Android原生数据库操作模块操作Android SQLite;
如果当前设备所属平台为iOS平台,则构建操作iOS原生数据库模块的URL并调用URL发生器,发出打开iOS原生数据库操作模块的URL请求,iOS的URL拦截器截获该URL,并识别出URL中的方法名和参数,最后使用该方法调用原生数据库操作模块操作iOS SQLite。
本发明的有益效果是:使用HTML5+Android/iOS的混合开发方式来实现跨平台技术,基于本发明的跨平台轻量级数据库封装,对不同的平台的数据库操作,只做一次开发,将有助于降低开发成本以及节约开发时间。
附图说明
图1为本发明实施例中的基于移动终端跨平台的轻量数据库封装原理图。
具体实施方式
本发明旨在提出一种基于移动终端的跨平台的轻量数据库封装方法及系统,实现了在HTML页面跨平台(iOS和Android)的数据库操作,有效解决了基于不同移动智能终端平台在HTML页面对数据库操作功能重复开发的问题。
在具体实现上,本发明中的基于移动终端的跨平台的轻量数据库封装系统,包括:
Android原生数据库操作模块、供JavaScript调用打开该原生操作模块的JavascriptInterface扩展函数接口、iOS原生数据库操作模块、可以拦截JavaScript URL的URL拦截器、JavaScript设备识别模块、JavaScript URL发生器、JavaScript对调用者开放的操作数据库的exeSql函数。
所述Android原生数据库操作模块,是用Android原生代码开发的操作AndroidSQLite数据库的模块;
所述打开Android原生数据库操作的JavascriptInterface扩展函数接口,是供JavaScript调用的java函数,让JavaScript拥有直接操作Android原生数据库功能的能力;
所述iOS原生数据库操作模块,是用iOS原生代码实现的能够操作iOS SQLite的模块;所述URL拦截器,是iOS实现的,可以拦截HTML页面上URL请求路径,并能根据路径能判断JavaScript想要调用的函数以及获得传入的参数的iOS监听模块;
所述JavaScript设备识别模块,是一个JavaScript函数,该函数通过HTML DOMuserAgent属性判断浏览器类型并确定该JavaScript所在的设备是否为iOS,若不是iOS,则确定该设备为Android平台;
所述JavaScript URL发生器,是一个JavaScript函数,该函数动态创建一个iframe,并为该iframe设置src属性,此时,所述的iOS URL拦截器便可拦截该src属性值表示的路径;
所述JavaScript对调用者开放的操作数据库的exeSql函数,是提供给最终调用者的接口,它根据所述JavaScript设备识别器返回结果,确定是去调用Android的JavascriptInterface扩展接口打开Android原生数据库操作模块,还是改变页面上的iframe的src属性以便让所述URL拦截器拦截到该url并打开iOS原生数据库操作模块。
所述JavaScript对调用者开放的操作数据库的exeSql函数所带参数包含对原生数据库操作的指令,该参数在与移动终端本地传输时以字符串格式的序列号传输,并在传送至页面或移动终端本地时,反序列化成JSON对象。
基于上述系统,本发明实现的跨平台的轻量级数据库封装方法,包括以下步骤:
步骤1:最终用户使用JavaScript调用所述的操作数据库的exeSql函数,并传入操作数据库的命令;
步骤2:所述的exeSql函数调用所述的JavaScript设备识别模块,获得当前设备所属平台;
步骤3:如果是Android平台,调用所述的JavascriptInterface扩展函数接口;该接口再调用Android原生数据库操作模块操作Android SQLite;
如果当前设备所属平台为iOS平台,则构建操作iOS原生数据库模块的URL并调用URL发生器,发出打开iOS原生数据库操作模块的URL请求,iOS的URL拦截器截获该URL,并识别出URL中的方法名和参数,最后使用该方法调用原生数据库操作模块操作iOS SQLite。
以下结合附图及实施例对本发明方案作更进一步的说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例:
本发明提供的跨平台的轻量级数据库封装方法,如图1所示,其包含以下步骤:
1)JavaScript开放给用户的接口函数exeSql(sql),用户调用传入对数据库操作的命令,实施代码类似如下:
function exeSql(sql){
if(isIOS()){
call iOS native;
}else{
Call Android native;
}
}
2)JavaScript实现一个设备平台识别器,该识别器判断当前设备是iOS平台还是Android平台;
3)JavaScript实现一个URL发生器,如果当前设备是iOS系统时,通过该URL发生器发出请求,供IOS URL拦截器进行拦截;
4)Android端实现一个JavaScript可调用的JavascriptInterface扩展接口函数,Android设备上的HTML页面能够通过JavaScript调用该函数打开Android原生模块,进而对Android SQLite进行操作;
5)iOS端实现一个iOS URL拦截器,iOS设备上通过WebView拦截URL为约定域名的网址,然后操作iOS SQLite。
Claims (3)
1.基于移动终端的跨平台的轻量数据库封装系统,其特征在于,包括:
Android原生数据库操作模块,其为用Android原生代码开发的操作Android SQLite数据库的模块;
JavascriptInterface扩展函数接口,其为供JavaScript调用的java函数,让JavaScript拥有直接操作Android原生数据库功能的能力;
iOS原生数据库操作模块,其为用iOS原生代码实现的能够操作iOS SQLite的模块;
URL拦截器,其为采用iOS实现的监听模块,用于拦截HTML页面上URL请求路径,并根据路径判断JavaScript想要调用的函数以及获得传入的参数;
JavaScript设备识别模块,其为一个JavaScript函数,该函数通过HTML DOMuserAgent属性判断浏览器类型并确定该JavaScript所在的设备是否为iOS,若不是iOS,则确定该设备为Android平台;
JavaScript URL发生器,其为一个JavaScript函数,该函数动态创建一个iframe,并为该iframe设置src属性,此时,所述的URL拦截器便可拦截该src属性值表示的路径;
操作数据库的exeSql函数,其为提供给最终调用者的接口,用于根据所述JavaScript设备识别器返回结果,确定调用Android的JavascriptInterface扩展函数接口打开Android原生数据库操作模块,还是改变页面上的iframe的src属性以便让所述URL拦截器拦截到该url并打开iOS原生数据库操作模块。
2.如权利要求1所述的基于移动终端的跨平台的轻量数据库封装系统,其特征在于,所述操作数据库的exeSql函数所带参数包含对原生数据库操作的指令,该参数在向移动终端本地传输时以字符串格式的序列号传输,并在传送至页面或移动终端本地时,反序列化成JSON对象。
3.基于移动终端的跨平台的轻量数据库封装方法,其特征在于,包括以下步骤:
a.使用JavaScript调用操作数据库的exeSql函数,并传入操作数据库的命令;
b.exeSql函数调用JavaScript设备识别模块,获得当前设备所属平台;
c.如果当前设备所属平台为Android平台,则调用JavascriptInterface扩展函数接口,该接口再调用Android原生数据库操作模块操作Android SQLite;
如果当前设备所属平台为iOS平台,则构建操作iOS原生数据库模块的URL并调用URL发生器,发出打开iOS原生数据库操作模块的URL请求,iOS的URL拦截器截获该URL,并识别出URL中的方法名和参数,最后使用该方法调用原生数据库操作模块操作iOS SQLite。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611166741.2A CN106775719B (zh) | 2016-12-16 | 2016-12-16 | 基于移动终端的跨平台的轻量数据库封装方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611166741.2A CN106775719B (zh) | 2016-12-16 | 2016-12-16 | 基于移动终端的跨平台的轻量数据库封装方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775719A true CN106775719A (zh) | 2017-05-31 |
CN106775719B CN106775719B (zh) | 2020-03-20 |
Family
ID=58891890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611166741.2A Active CN106775719B (zh) | 2016-12-16 | 2016-12-16 | 基于移动终端的跨平台的轻量数据库封装方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775719B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108037914A (zh) * | 2017-12-26 | 2018-05-15 | 福建中金在线信息科技有限公司 | 一种安卓原生系统结合js开发的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497459A (zh) * | 2002-10-16 | 2004-05-19 | Ф������ά�� | 便携式跨平台数据库访问方法及系统 |
CN103853803A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 数据库的配置文件的封装方法和操作方法及其操作装置 |
CN103902677A (zh) * | 2014-03-21 | 2014-07-02 | 西安理工大学 | 一种跨平台的数据库访问方法 |
US20150169302A1 (en) * | 2011-06-02 | 2015-06-18 | Recursion Software, Inc. | System and method for pervasive software platform-based model driven architecture transaction aware application generator |
-
2016
- 2016-12-16 CN CN201611166741.2A patent/CN106775719B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497459A (zh) * | 2002-10-16 | 2004-05-19 | Ф������ά�� | 便携式跨平台数据库访问方法及系统 |
US20150169302A1 (en) * | 2011-06-02 | 2015-06-18 | Recursion Software, Inc. | System and method for pervasive software platform-based model driven architecture transaction aware application generator |
CN103853803A (zh) * | 2013-06-26 | 2014-06-11 | 携程计算机技术(上海)有限公司 | 数据库的配置文件的封装方法和操作方法及其操作装置 |
CN103902677A (zh) * | 2014-03-21 | 2014-07-02 | 西安理工大学 | 一种跨平台的数据库访问方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108037914A (zh) * | 2017-12-26 | 2018-05-15 | 福建中金在线信息科技有限公司 | 一种安卓原生系统结合js开发的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106775719B (zh) | 2020-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102209111B (zh) | 云计算移动网络终端设备开放性跨平台系统 | |
WO2020181599A1 (zh) | 一种模型应用方法、管理方法、系统及服务器 | |
CN108170740A (zh) | 数据迁移方法、系统和计算机可读存储介质 | |
CN101557297B (zh) | 一种基于互联网的开放式电信业务生成系统及方法 | |
CN108519952A (zh) | 一种分布式的web自动化测试系统及方法 | |
CN104750487B (zh) | 一种移动终端app的开发方法及启动方法 | |
US20190095200A1 (en) | Compatibility method based on hybrid, adapter, operation device, system and computer-readable storage medium | |
CN102945169A (zh) | 一种基于Android的Native APP融合Web APP开发系统 | |
CN103294455A (zh) | 一种软件服务实现方法、系统及Java平台 | |
CN110175027A (zh) | 一种开发业务功能的方法和装置 | |
CN112035090B (zh) | 基于容器化技术实现智能合约智慧化管理系统及方法 | |
CN106775862A (zh) | 应用加载方法及装置 | |
CN105959302A (zh) | 一种终端管理框架及方法 | |
CN107704256A (zh) | 一种Ubuntu上实现Python依赖系统库自动化安装的方法 | |
CN102761443A (zh) | 命令行的配置方法及装置 | |
CN104092784A (zh) | 数据交换装置和数据交换方法 | |
CN110555145A (zh) | 一种基于浏览器的网页内容采集系统及其采集方法 | |
CN102624736B (zh) | 一种tl1命令校验方法及装置 | |
CN114416314A (zh) | 一种基于api网关的服务编排方法 | |
CN104423932B (zh) | Javascript中调用二进制组件的方法 | |
CN112799734B (zh) | 一种流程管理方法、图像处理方法及其对应的平台和装置 | |
CN105791011A (zh) | 一种基于Docker实现统一化网管平台的系统及方法 | |
CN106775719A (zh) | 基于移动终端的跨平台的轻量数据库封装方法及系统 | |
CN111913721B (zh) | 自动化部署方法、装置、设备及存储介质 | |
CN104636249A (zh) | 一种应用程序调试信息生成系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |