跨平台应用程序的设计方法、装置、移动终端及存储介质与流程

文档序号:14155831阅读:274来源:国知局

本发明实施例涉及应用开发技术,尤其涉及一种跨平台应用程序的设计方法、装置、移动终端及存储介质。



背景技术:

目前的主流移动app(application,应用程序)开发方案有三种:纯原生开发、纯web开发以及混合开发。其中纯原生开发由于工作量过大,无法跨平台,比例在逐步减少;而纯web开发又由于性能较差,也逐渐被舍弃;现今占据主流的是混合开发。混合开发包含两种模式:一种是reac-native、weex这样的javascript编译成原生代码模式,一种是phonegap这样的javascript通过api(applicationprogramminginterface,应用程序编程接口)调用原生功能模式。由于学习成本的关系,目前使用范围最广泛的仍然是phonegap之流的混合开发模式。

phonegap之流的混合开发模式的设计初衷是:跨平台开发。即一套代码,可以同时在anroid、ios上运行。在基于这类型的方案开发时,首先需要安装有对应环境的容器,然后以进行应用开发,开发完成后应用程序可以运行在对应环境的容器中。在发布时,将具有android环境的容器发布到android市场,将具有ios环境的容器发布到ios市场,并且android和ios应用中的内容就是开发出的应用程序。通过这种手段,达到了一套代码,同时运行在android、ios上的目的。

phonegap这类方案设计实现了一套代码同时运行在android、ios上,即它只能运行在具有phonegapsdk(softwaredevelopmentkit)的容器中,也就是说它无法在web浏览器和其它容器中运行,如果在其他容器中运行,还需要单独为其他容器进行开发,仍然存在重复劳动,开发效率较低。



技术实现要素:

有鉴于此,本发明实施例提供一种跨平台应用程序的设计方法、装置、移动终端及存储介质,以减少重复劳动,提高开发效率。

第一方面,本发明实施例提供了一种跨平台应用程序的设计方法,所述方法包括:

监听应用程序在当前底层容器中对预设api系列中的预设api的调用;

在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,确定所述至少一个预设api并获取所述当前底层容器的环境标识;

根据所述环境标识,将所述至少一个预设api转换为所述当前底层容器中对应的至少一个api,以在所述当前底层容器中加载所述应用程序。

第二方面,本发明实施例还提供了一种跨平台应用程序的设计装置,所述装置包括:

监听模块,用于监听应用程序在当前底层容器中对预设应用程序编程接口api系列中的预设api的调用;

api及环境确定模块,用于在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,确定所述至少一个预设api并获取所述当前底层容器的环境标识;

转换模块,用于根据所述环境标识,将所述至少一个预设api转换为所述当前底层容器中对应的至少一个api,以在所述当前底层容器中加载所述应用程序。

第三方面,本发明实施例还提供了一种移动终端,所述移动终端包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任一实施例所述的跨平台应用程序的设计方法。

第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所述的跨平台应用程序的设计方法。

本发明实施例的技术方案,通过在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,确定所述至少一个预设api并获取当前底层容器的环境标识,根据所述环境标识,将至少一个预设api转换为当前底层容器中对应的至少一个api,以在当前底层容器中加载所述应用程序,实现了一套代码运行于不同的底层容器中,实现了真正跨平台的应用程序,减少了重复劳动,从而降低应用开发成本,提高开发效率。

附图说明

图1是本发明实施例一提供的一种跨平台应用程序的设计方法的流程图;

图2是本发明实施例提供的跨平台应用程序的设计方法中的标准容器中的api实现架构图;

图3是本发明实施例提供的跨平台应用程序的设计方法的运行过程图;

图4是本发明实施例提供的跨平台应用程序的设计方法中的多平台支撑架构图;

图5是本发明实施例二提供的一种跨平台应用程序的设计装置的结构示意图;

图6为本发明实施例三提供的一种移动终端的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

实施例一

图1是本发明实施例一提供的一种跨平台应用程序的设计方法的流程图,本实施例可适用于跨平台设计应用程序的情况,该方法可以由跨平台应用程序的设计装置来执行,该装置可以由软件和/或硬件的方式来实现,该装置也可以称为核心引擎,一般可集成在手机或平板电脑等移动终端中。如图1所示,该方法具体包括如下步骤:

步骤110,监听应用程序在当前底层容器中对预设api系列中的预设api的调用。

其中,api(applicationprogramminginterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。预设api系列包括多个预设api,预设api系列中的预设api是根据一套统一的api规范定义的,不同底层容器中调用相同预设api的代码完全一致。

其中,容器在计算机中是能够将其他控件放置在其上面的控件,在web浏览器中是应用服务器中位于组件和平台之间的接口集合。所述当前底层容器包括标准容器或非标准容器,所述标准容器是符合w3c(worldwidewebconsortium,万维网联盟)规范的标准webview页面,非标准容器可以是除了标准容器以外的容器,如微信容器或钉钉容器等。需要说明的是,标准容器和非标准容器的划分是相对公司来说的,即本公司基于w3c规范的标准webview页面拓展的一个页面容器为标准容器,而其他公司的容器为非标准容器。例如,公司a基于w3c规范的标准webview页面拓展的一个页面容器,该页面容器对于公司a来说是标准容器,而其他容器包括:微信公司基于w3c规范的标准webview页面拓展的微信页面容器、钉钉公司基于w3c规范的标准webview页面拓展的钉钉页面容器或其他一些页面容器等。

其中,所述应用程序是在webkit内核开发环境中基于html5+css3+javascript开发的。

其中,webkit是一个开源的浏览器引擎,webkit的优势在于高效稳定,兼容性好,且源码结构清晰,易于维护。html5是web的核心语言、标准通用标记语言下的一个应用html(hypertextmarkuplanguage,超文本标记语言)的第五次重大修改。css3是css(cascadingstylesheet,层叠样式表)技术的升级版本,在网页制作时采用层叠样式表技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。css3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来,这些模块包括:盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等。javascript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为javascript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html网页上使用,用来给html网页增加动态功能。

现有的大部分应用程序中均有组件webview,该组件webview的底层是基于webkit内核的,如果后续应用程序中的控件升级后不再是基于webkit内核的,但是肯定还是基于w3c标准的,当该应用程序作为底层容器时,仍然可以使用本申请中的核心引擎实现跨平台设计。

首先搭建webkit内核开发环境,在webkit内核开发环境中,开发所述应用程序,具体可以是采用html5进行具体模块开发,采用html搭建页面框架,采用css3实现页面效果,采用javascript编写页面脚本。基于webkit内核环境开发的应用程序可以使用基本的web功能。

步骤120,在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,确定所述至少一个预设api并获取所述当前底层容器的环境标识。

应用程序调用预设api时,有可能会调用一个或多个预设api。所以,在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,通过解析可以直接确定调用的至少一个预设api,同时根据当前底层容器中的webview中包含的当前的环境标识,基于javascript的核心引擎在页面可以获取到当前底层容器的环境标识。

步骤130,根据所述环境标识,将所述至少一个预设api转换为所述当前底层容器中对应的至少一个api,以在所述当前底层容器中加载所述应用程序。

通过预设api调用来扩展应用程序在不同底层容器中的实现。通过将预设api转换为对应当前底层容器中的api,从而可以在当前底层容器中实现所述应用程序的功能。

api的特征包括但不局限于:本地设备能力(如拍照、摄像等)、第三方增强库能力(如二维码扫描)和/或自定义ui实现(如弹出对话框等)。

其中,根据所述环境标识,将所述预设api转换为所述当前底层容器中的api,可选包括:

根据所述环境标识以及预先定义的预设api在对应环境标识的底层容器中的实现方式,将所述预设api转换为所述当前底层容器中的api。

其中,所述预先定义的预设api在对应环境标识的底层容器中的实现方式可选包括:在标准容器中使用标准的sdk(softwaredevelopmentkit,软件开发工具包)通过原生代码实现;在非标准容器中,使用javascript来实现。在标准容器中,使用标准的sdk,在android和ios中分别通过原生代码实现api规范,应用中通过jsbridge方式与原生页面交互,从而实现在标准容器中调用api的效果。在非标准容器中,使用javascript来实现api,如web环境中,使用javascript通过w3c标准的html5和css3实现api效果;在钉钉容器中,使用javascript通过代码中转成钉钉容器下的api,即在第三方容器中,通过代码中转成第三方容器本身提供的api,从而达到在非标准容器下调用api的目的。其中,jsbridge是javascript和native(原生)之间的一种通信方式,简单的说,jsbridge就是定义native和javascript的通信,native只通过一个固定的桥对象调用javascript,javascript也只通过固定的桥对象调用native。

图2是本发明实施例提供的跨平台应用程序的设计方法中的标准容器中的api实现架构图,如图2所示,视图层包括html5页面、前端框架、对应的标准api及原生页面,表示将html5页面显示在运行于不同标准容器的原生页面上;核心引擎提供了统一调用规范的预设api系列,对api进行统一预处理,应用中通过jsbridge方式与原生页面交互;标准容器中有数据通道、原生api及jsbridge,还可以有其他的扩展功能;操作系统(operatingsystem,os)包括android或ios。具体而言,核心引擎提供一套统一调用规范,监听各种从webkit环境中开发的html5页面在当前底层容器中对预设api的调用,在监听到android或ios对api的调用时,将在android或ios中通过原生代码实现api的功能,应用时通过jsbridge方式将html5页面与原生页面交互,从而实现在标准容器中调用api的效果。

本实施例的技术方案,通过在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,确定所述至少一个预设api并获取当前底层容器的环境标识,根据所述环境标识,将至少一个预设api转换为当前底层容器中对应的至少一个api,以在当前底层容器中加载所述应用程序,实现了一套代码运行于不同的底层容器中,达到一次编写,多平台运行的目的,实现了真正跨平台的应用程序,减少了重复劳动,从而降低应用开发成本,提高开发效率。

图3是本发明实施例提供的跨平台应用程序的设计方法的运行过程图。如图3所示,提供一个基于javascript的核心引擎,来统一监听对预设api的调用,在监听到应用程序(如应用a、应用b或应用c)在底层容器对预设api的调用操作时,通过引擎分析,得到调用的预设api及对应的底层容器(如标准容器、钉钉容器、web浏览器或其他容器),并将预设api转换为对应底层容器中的api,以在底层容器中实现对应api的功能。

图4是本发明实施例提供的跨平台应用程序的设计方法中的多平台支撑架构图,如图4所示,上层应用即html5页面,核心引擎中包括提供的统一规范的预设api系列、javascript实现api的方式、多平台支持;api转换将统一的预设api转换为标准api、钉钉容器中的api、html5页面实现以及其他实现的api;底层容器是对应不同api的底层容器,包括标准容器、钉钉容器、浏览器及其他容器。通过提供一个基于javascript的核心引擎,约定一套统一的api规范,以及在不同的容器下实现api,进而促使一套代码可以运行于不同的容器中,只需要开发人员写出一套代码,就可以在不同容器下都顺利运行,同一个api在不同容器下可以有不同效果。达到一次编写,多平台运行的目的,使得应用程序真正的成为了跨平台应用程序,从而降低应用开发成本,提高开发效率。

例如,微信容器中提供的微信的系列底层api为w1,w2,…,wn,钉钉容器中提供的钉钉的系列底层api为d1,d2,…,dn,公司a的容器提供的系列底层api为a1,a2,…,a3,预设api系列为h1,h2,…,hn,定义的预设api系列在不同底层容器下的实现为:h1在微信容器中的实现为w1,在钉钉容器下的实现为d1,在公司的容器下的实现为a1;h2在微信容器中的实现为w2,在钉钉容器下的实现为d2,在公司的容器下的实现为a2;…;hn在微信容器中的实现为wn,在钉钉容器下的实现为dn,在公司的容器下的实现为an。当核心引擎监听到调用预设apih1时,进行解析得到当前底层容器为微信容器时,自动转换成微信容器的底层apiw1,在解析得到当前底层容器为钉钉容器时,自动转换成钉钉容器的底层apid1,在解析得到当前底层容器为公司a的容器时,自动转换成公司a的底层apia1。

实施例二

图5是本发明实施例二提供的一种跨平台应用程序的设计装置的结构示意图,本实施例可适用于跨平台设计应用程序的情况,该装置可以由软件和/或硬件的方式来实现,一般可集成在移动终端中。如图5所示,该跨平台应用程序的设计装置包括:监听模块210、api及环境确定模块220和转换模块230。

其中,监听模块210,用于监听应用程序在当前底层容器中对预设应用程序编程接口api系列中的预设api的调用;

api及环境确定模块220,用于在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,确定所述至少一个预设api并获取所述当前底层容器的环境标识;

转换模块230,用于根据所述环境标识,将所述至少一个预设api转换为所述当前底层容器中对应的至少一个api,以在所述当前底层容器中加载所述应用程序。

可选的,所述应用程序是在webkit内核开发环境中基于html5+css3+javascript开发的。

可选的,所述转换模块具体用于:

根据所述环境标识以及预先定义的预设api在对应环境标识的底层容器中的实现方式,将所述预设api转换为所述当前底层容器中的api。

可选的,所述底层容器包括标准容器或非标准容器;

所述标准容器是符合w3c规范的标准webview页面。

上述跨平台应用程序的设计装置可执行本发明任意实施例所提供的跨平台应用程序的设计方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的跨平台应用程序的设计方法。

实施例三

图6为本发明实施例三提供的一种移动终端的结构示意图,如图6所示,该移动终端包括处理器310、存储装置320、输入装置330和输出装置340;移动终端中处理器310的数量可以是一个或多个,图6中以一个处理器310为例;移动终端中的处理器310、存储装置320、输入装置330和输出装置340可以通过总线或其他方式连接,图6中以通过总线连接为例。

存储装置320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的跨平台应用程序的设计方法对应的程序指令/模块(例如,跨平台应用程序的设计装置中的监听模块210、api及环境确定模块220和转换模块230)。处理器310通过运行存储在存储装置320中的软件程序、指令以及模块,从而执行移动终端的各种功能应用以及数据处理,即实现上述的跨平台应用程序的设计方法。

存储装置320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据移动终端的使用所创建的数据等。此外,存储装置320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置330可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏等显示设备。

实施例四

本发明实施例四提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种跨平台应用程序的设计方法,该方法包括:

监听应用程序在当前底层容器中对预设应用程序编程接口api系列中的预设api的调用;

在监听到应用程序在当前底层容器中调用预设api系列中的至少一个预设api时,确定所述至少一个预设api并获取所述当前底层容器的环境标识;

根据所述环境标识,将所述至少一个预设api转换为所述当前底层容器中对应的至少一个api,以在所述当前底层容器中加载所述应用程序。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的跨平台应用程序的设计方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1