CN107678778B - 基于Hybrid的兼容方法、适配件、运行装置及*** - Google Patents
基于Hybrid的兼容方法、适配件、运行装置及*** Download PDFInfo
- Publication number
- CN107678778B CN107678778B CN201710155069.5A CN201710155069A CN107678778B CN 107678778 B CN107678778 B CN 107678778B CN 201710155069 A CN201710155069 A CN 201710155069A CN 107678778 B CN107678778 B CN 107678778B
- Authority
- CN
- China
- Prior art keywords
- component
- native
- hybrid
- data
- adaptation
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
- Coupling Device And Connection With Printed Circuit (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例公开了一种基于Hybrid的兼容方法、适配件、运行装置及***,其中方法包括:JS适配组件从第二Hybrid的JS组件获取第二组件数据;JS适配组件将第二组件数据封装成适用于第一Hybrid的参数数据包;JS适配组件将第一组件数据传给第一Hybrid的桥接模块;原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包;原生适配组件解析参数数据包来获取第二Hybrid的原生组件的类名和方法名;原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用第二Hybrid的原生组件的接口,进而可以实现不同Hybrid的相互兼容。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种基于Hybrid的兼容方法、适配件、运行装置及***。
背景技术
为了适应移动应用程序的开发需求,利用Hybrid(混合)开发技术开发的混合式移动应用(Hybrid APP)基于开发成本低、维护简单、用户体验较好、可以跨平台等优势而越来越受欢迎,Hybrid APP是指介于原生应用和网页应用之间,常采用原生Web视图控件(Webview)为载体,将wap或者web页面嵌入到客户端软件中提供功能。Hybrid APP兼具原生应用开发(Native App)良好互动体验的优势和网页应用开发(Web App)跨平台开发的优势。然而现有方式中由于每个Hybrid框架都有各自的数据封装方式,一个Hybrid框架内的数据形式与另一个Hybrid框架的数据形式的不同导致了一个Hybrid框架不能使用另一个Hybrid框架的组件,即使一个开源Hybrid框架的组件也不能被另一个Hybrid框架使用,这使得混合式移动应用开发工作的开发成本升高,开发人员的开发工效低。
发明内容
本发明实施例提供一种基于Hybrid的兼容方法、适配件、运行装置及***,可以使不同Hybrid相互兼容,即一个Hybrid框架可以使用另一个Hybrid框架的组件,节省了开发工作的开发成本和提高开发人员的开发工效。
第一方面,本发明实施例提供了一种基于Hybrid的兼容方法,所述方法包括:
第一Hybrid的JS适配组件从第二Hybrid的JS组件获取第二组件数据,第二组件数据包括用于执行当前业务的第二Hybrid的原生组件的类名和方法名;JS适配组件将第二组件数据封装成适用于第一Hybrid的参数数据包;JS适配组件将第一组件数据传给第一Hybrid的桥接模块,第一组件数据包括参数数据包以及预存的与JS适配组件相对应的第一Hybrid中的原生适配组件的类名和方法名,原生适配组件的类名和方法名用于供第一Hybrid的桥接模块调用相对应的原生适配组件的接口进行数据传输;相对应的原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包;原生适配组件解析参数数据包来获取第二Hybrid的原生组件的类名和方法名;原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输,以供第二Hybrid的原生组件执行当前业务。
另一方面,本发明实施例提供了一种适配件,适配件设置于第一Hybrid,用于使第二Hybrid的组件与第一Hybrid相兼容,适配件包括JS适配组件和原生适配组件,JS适配组件包括第一接收单元、第一封装单元和第一调用单元,原生适配组件包括第二接收单元、解析单元以及第二调用单元,
第一接收单元,用于从第二Hybrid的JS组件获取第二组件数据,第二组件数据包括用于执行当前业务的第二Hybrid的原生组件的类名和方法名;第一封装单元,用于将第二组件数据封装成适用于第一Hybrid的参数数据包;第一调用单元,用于将第一组件数据传给第一Hybrid的桥接模块,第一组件数据包括参数数据包以及预存的与JS适配组件相对应的第一Hybrid中的原生适配组件的类名和方法名,原生适配组件的类名和方法名用于供第一Hybrid的桥接模块调用相对应的原生适配组件的接口进行数据传输;第二接收单元,用于相对应的原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包;解析单元,用于解析参数数据包来获取第二Hybrid的原生组件的类名和方法名;第二调用单元,用于根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输,以供第二Hybrid的原生组件执行当前业务。
另一方面,本发明实施例提供了一种基于Hybrid的运行装置,运行装置包括第一Hybrid的框架,第一Hybrid包括适配件和桥接模块,适配件包括JS适配组件和原生适配组件,第一Hybrid的桥接模块用于连接JS适配组件和原生适配组件,
JS适配组件包括第一接收单元、第一封装单元和第一调用单元,原生适配组件包括第二接收单元、解析单元以及第二调用单元,
第一接收单元,用于从第二Hybrid的JS组件获取第二组件数据,第二组件数据包括用于执行当前业务的第二Hybrid的原生组件的类名和方法名;第一封装单元,用于将第二组件数据封装成适用于第一Hybrid的参数数据包;第一调用单元,用于将第一组件数据传给第一Hybrid的桥接模块,第一组件数据包括参数数据包以及预存的与JS适配组件相对应的第一Hybrid中的原生适配组件的类名和方法名,原生适配组件的类名和方法名用于供第一Hybrid的桥接模块调用相对应的原生适配组件的接口进行数据传输;第二接收单元,用于相对应的原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包;解析单元,用于解析参数数据包来获取第二Hybrid的原生组件的类名和方法名;第二调用单元,用于根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输,以供第二Hybrid的原生组件执行当前业务。
另一方面,本发明实施例提供了一种基于Hybrid的运行***,运行***包括第一Hybrid和第二Hybrid的JS组件和第二Hybrid的原生组件,第一Hybrid包括适配件和桥接模块,适配件包括JS适配组件和原生适配组件,第一Hybrid的桥接模块用于连接JS适配组件和原生适配组件,JS适配组件用于连接第二Hybrid的JS组件和第一Hybrid的桥接模块,原生适配组件用于连接第一Hybrid的桥接模块和第二Hybrid的原生组件,
其中,JS适配组件包括第一接收单元、第一封装单元和第一调用单元,原生适配组件包括第二接收单元、解析单元以及第二调用单元,
第一接收单元,用于从第二Hybrid的JS组件获取第二组件数据,第二组件数据包括用于执行当前业务的第二Hybrid的原生组件的类名和方法名;第一封装单元,用于将第二组件数据封装成适用于第一Hybrid的参数数据包;第一调用单元,用于将第一组件数据传给第一Hybrid的桥接模块,第一组件数据包括参数数据包以及预存的与JS适配组件相对应的第一Hybrid中的原生适配组件的类名和方法名,原生适配组件的类名和方法名用于供第一Hybrid的桥接模块调用相对应的原生适配组件的接口进行数据传输;第二接收单元,用于相对应的原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包;解析单元,用于解析参数数据包来获取第二Hybrid的原生组件的类名和方法名;第二调用单元,用于根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输,以供第二Hybrid的原生组件执行当前业务。
本发明实施例所公开的一种基于Hybrid的兼容方法、适配件、运行装置及***,通过上述方法将第二Hybrid的第二组件数据封装成适用于第一Hybrid的参数数据包,以便可以将其传入第一Hybrid的桥接模块,并使原生适配组件按照第二Hybrid的原生组件的调用规则调用第二Hybrid的原生组件的接口来传输数据,实现不同Hybrid的相互兼容,进而使一个Hybrid可以调用另一个Hybrid的组件,节省开发周期以及成本并提高开发效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种标准Hybird的架构示意图;
图2是本发明实施例提供的一种基于Hybrid的运行***的架构示意图;
图3是本发明实施例提供的一种基于Hybrid的兼容方法的示意性流程图;
图4是本发明实施例提供的一种基于Hybrid的兼容方法中回调过程的示意性流程图;
图5是本发明实施例提供的一种基于Hybrid的运行***的功能模块图;
图6是本发明实施例提供的一种基于Hybrid的运行***的硬件结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或若干个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
请看图1,是本发明提供的一种标准Hybird的框架第一示意图。如图所示,现有的标准Hybird框架包括桥接模块2、与桥接模块2通讯连接的一个或一个以上的JS(Javascript)组件1,和一个或一个以上的原生(Native)组件3,其中,JS组件1与原生组件3是具有对应关系。本实施例中优选具有相对应关系的JS组件1与原生组件3是具有特定功能的一个Hybird组件在JS侧的代码和在Native侧的代码,即一个Hybird组件包括一组JS组件1和原生组件3。特定功能表示为处理特定业务的功能。如图所示,Hybird组件A包括JS组件和原生组件,该JS组件是组件A在JS侧的代码,该原生组件是组件A在Native侧的代码。
需要说明的是,桥接模块2为Hybird中的JSBirdge,桥接模块2的作用为JS组件1与原生组件3的通讯桥梁。桥接模块2包括JS层21和原生(Native)层23,其中原生层23是原生代码层,而原生代码是ios/android传统客户端软件开发,即使用特定平台语音和工具开发客户端软件方式。JS层21包括JS接口211和JS回调接口212,原生层23包括原生层接口231和原生层回调接口232。JS接口211用于接收JS组件1的调用通知;JS回调接口用于回调相应的JS组件的JS组件接口;原生层接口231用于Hybird的原生层23接收JS层21调用通知;原生层回调接口232用于Hybird的原生层23接收到原生组件3的回调后再发送给JS回调接口212。利用Hybird开发的应用程序APP是将网页应用开发和原生应用开发相结合,例如前端页面上的一个按钮,点击按钮后需要本地端执行一个耗时任务。
因此,标准的Hybird执行业务时的数据传输过程如下所示:JS组件1通过JS组件接口11从HTML5/javascript业务层接收业务数据,JS组件1再调用桥接模块2中的JS接口211来传输数据,数据经由原生Web视图控件22传输至原生(Native)层23,原生层23再调用原生组件3中的原生组件接口31来传输数据用以执行业务。而执行业务后的回调数据由原生组件3调用桥接模块2中的原生层回调接口232来传输数据,并经由原生Web视图控件22传输至JS层21,再调用JS组件接口11将回调数据返回至JS组件1。其中,原生Web视图控件22是作为载体的APP嵌入式浏览器控件。
由于不同Hybird中JS组件1、原生组件3与桥接模块2之间的调用方式可能不同或数据封装方式不同,如一个Hybird调用原生组件的调用规则不同或者一个Hybird的数据封装方式与另一个Hybird的数据封装方式不同均可导致一个Hybird不能调用另一个Hybird的组件,进而使得不同Hybird无法相兼容。为了解决上述不同Hybird不相兼容的问题,本发明实施例提供了一种适配件,是用于实现第二Hybrid的JS组件和第二Hybrid的原生组件与第一Hybrid通讯的适配组件,适配件是根据第一Hybrid组件的规则进行开发,因此,适配件可视为具有适配功能的第一Hybrid组件如适配组件,本发明实施例中,适配件包括JS适配组件和原生适配组件,其中JS适配组件可视为一个第一Hybrid的JS组件,原生适配组件可视为一个第一Hybrid的原生组件,JS适配组件和原生适配组件是适配组件在JS侧的代码和在Native侧的代码。
请看图2,是本发明实施例提供的一种基于Hybrid的运行***的架构示意图。如图所示,运行***包括第一Hybrid 6和一个或一个以上的第二Hybrid的JS组件4和一个或一个以上的第二Hybrid的原生组件5。第一Hybrid 6包括适配件12和桥接模块7以及一个或一个以上的第一Hybrid的JS组件10和一个或一个以上的第一Hybrid的原生组件11,其中,适配件12包括JS适配组件8和原生适配组件9,第一Hybrid的桥接模块7连接于JS适配组件8和原生适配组件9。适配件12是用于实现第二Hybrid的JS组件4和第二Hybrid的原生组件5与第一Hybrid 6通讯的适配组件,进而使第一Hybrid 6可以调用第二Hybrid的JS组件4和第二Hybrid的原生组件5。具体实现时,JS适配组件8用于连接第二Hybrid的JS组件4和第一Hybrid的桥接模块7;原生适配组件9用于连接第二Hybrid的原生组件5与第一Hybrid的桥接模块7,进而实现第二Hybrid的JS组件4和第二Hybrid的原生组件5与第一Hybrid 6的通讯。
其中第二Hybrid的JS组件4和第二Hybrid的原生组件5是具有对应关系的组件。本实施例中一对第二Hybrid的JS组件4和第二Hybrid的原生组件5是具有特定功能的第二Hybrid组件下的两个小组件,优选第二Hybrid的JS组件4和第二Hybrid的原生组件5一一对应,其他可行的实施例中,第二Hybrid的JS组件4和第二Hybrid的原生组件5可以是一个对多或者多对多的关系,其对应关系是根据业务需求进行划分的。应当理解,一对第二Hybrid的JS组件4和第二Hybrid的原生组件5是一个第二Hybrid组件在JS侧的代码和在Native侧的代码。同理,JS适配组件8和原生适配组件9具有对应关系,第一Hybrid的JS组件10与第一Hybrid的原生组件11具有对应关系。
基于上述所述的适配件以及运行***的架构,本发明实施例提供了一种基于Hybrid的兼容方法,所述兼容方法使两个或两个以上的Hybrid框架相兼容,一个Hybrid框架可以调用另一个Hybrid框架的组件,节省开发成本。请看图3,是本发明实施例提供的一种基于Hybrid的兼容方法的示意性流程图,如图所示,所示兼容方法包括步骤S301~S309:
S301,第一Hybrid的JS适配组件从第二Hybrid的JS组件获取第二组件数据。
具体的,由上述运行***的架构可知,第一Hybrid包括适配件和桥接模块,适配件包括JS适配组件和原生适配组件,JS适配组件连接第二Hybrid的JS组件和第一Hybrid的桥接模块;原生适配组件用于连接第二Hybrid的原生组件与第一Hybrid的桥接模块。
第二组件数据包括用于执行当前业务的第二Hybrid的原生组件的类名和方法名。应当理解,组件的类名和方法名是组件的身份标识,根据组件的类名和方法名可以调用到相对应的组件的接口以实现数据传输。故第二Hybrid的原生组件的类名和方法名是第二Hybrid的原生组件的身份标识,根据上述类名和方法名可以调用到相对应的第二Hybrid的原生组件。进一步的,第二组件数据还包括第二Hybrid的原生组件的输入参数。输入参数是需要传入第二Hybrid的原生组件的且与当前业务相关的参数,以便第二Hybrid的原生组件执行当前业务。在一些实施例中,输入参数是从业务层下发的业务参数,在另一些实施例中,输入参数是业务层下发的业务参数经由数据封装或格式化等操作并适用于调用方法的参数。更进一步地,第二组件数据还包括成功回调函数和失败回调函数,以供数据回调时使用。
需要说明的是,JS适配组件包括JS适配接口,JS适配组件通过JS适配接口从第二Hybrid的JS组件获取第二组件数据。在一些实施例中,若不同Hybrid暴露给JS组件的JS接口不同时,JS适配接口模拟第二Hybrid的JS接口以便第二Hybrid的JS组件调用JS适配接口,其中第二Hybrid的JS接口是原本用于供第二Hybrid的桥接模块接收第二Hybrid的JS组件的调用通知来获取第二组件数据。在另一些实施例中,若不同Hybrid暴露给JS组件的JS接口相同时,JS适配接口与第二Hybrid的JS接口也相同。应当理解,由于JS适配接口是模拟第二Hybrid的JS接口的或者JS适配接口与第二Hybrid的JS接口是相同的,因此第二组件数据未被修改时也可调用到JS适配接口来实现数据传输,下文将进行具体描述。
还需要说明的是,在另一些实施例中,JS适配组件从第二Hybrid的JS组件获取第二组件数据之前,所述方法还包括:
JS适配组件从业务层获取到待通讯的第二Hybrid的JS组件的信息;JS适配组件发送调用指令给第二Hybrid的JS组件,调用指令用于使第二Hybrid的JS组件根据调用指令调用JS适配组件中JS适配接口来传输第二Hybrid的JS组件数据,例如调用指令可以包括JS适配组件的JS适配接口的信息以及调用规则等。
S302,JS适配组件将第二组件数据封装成适用于第一Hybrid的参数数据包。
具体的,按照预设的适用于第一Hybrid调用的参数规律封装第二组件数据为参数数据包,其中参数规律包括数据的组织方式和结构等。应当理解,这是基于不同Hybrid的参数规律不同,导致第二组件数据无法直接传输至第一Hybrid的桥接模块。应当理解,参数数据包可以视为JS适配组件传输给原生适配组件的传入参数,即将第二组件数据封装成原生适配组件的传入参数的方式。
S303,JS适配组件将第一组件数据传给第一Hybrid的桥接模块,第一组件数据包括参数数据包以及预存的与JS适配组件相对应的原生适配组件的类名和方法名。
具体的,原生适配组件的类名和方法名用于供第一Hybrid的桥接模块调用相对应的原生适配组件的接口进行数据传输,其中,JS适配组件将第一组件数据传给第一Hybrid的桥接模块具体包括:
JS适配组件调用第一Hybrid的JS接口来传输第一组件数据至第一Hybrid的桥接模块。
这是基于JS适配组件可以视为一个第一Hybrid的JS组件,因此JS适配组件可以直接调用第一Hybrid的JS接口。另一方面,通过上述传输,第一组件数据传入了第一Hybrid的桥接模块的JS层并在JS层进行了一些处理。
S304,第一Hybrid的桥接模块的JS层将第一组件数据传输至原生层。
具体的,第一组件数据经由Webview再传入原生层,即通过调用第一Hybrid的原生层接口来实现数据传输。
S305,原生层根据第一组件数据中的原生适配组件的类名和方法名调用相对应的第一Hybrid的原生适配组件的原生适配接口来实现数据传输。
这是基于原生适配组件可视为一个第一Hybrid的原生组件,因此原生层可以直接调用原生适配组件的原生适配接口。
S306,相对应的原生适配组件从第一Hybrid的桥接模块获取所述第一组件数据中的参数数据包。
S307,原生适配组件解析参数数据包来获取第二Hybrid的原生组件的类名和方法名。
应当理解,解析参数数据包还可以获取到第二Hybrid的原生组件的输入参数。
S308,原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输,以供第二Hybrid的原生组件执行当前业务。
具体的,可能存在不同Hybrid的桥接模块调用原生组件的调用规则不同,因此原生适配组件调用第二Hybrid的原生组件是需要按照第二Hybrid的原生组件的调用规则调用。例如调用函数不同时,则需要按照第二Hybrid的原生组件的调用函数进行调用。还应当理解,调用相对应的第二Hybrid的原生组件的接口以将第二Hybrid的原生组件的传入参数发送给相对应的第二Hybrid的原生组件。
相较于上述方案,优选地,JS适配组件从第二Hybrid的JS组件获取第二组件数据,具体包括:
JS适配组件通过JS适配接口从第二Hybrid的JS组件获取第二组件数据,JS适配接口是模拟第二Hybrid的JS接口,第二Hybrid的JS接口用于供第二Hybrid的桥接模块从第二Hybrid的JS组件获取第二组件数据。
需要说明的是,基于不同Hybrid暴露给JS组件的JS接口不同时,优选执行上述方案。例如若第二Hybrid暴露给第二Hybrid的JS组件的第二Hybrid的JS接口与第一Hybrid暴露给第一Hybrid的JS组件的第一Hybrid的JS接口不同时,JS适配接口是需模拟第二Hybrid的JS接口。另一方面,在其他可行的实施例中,若第二Hybrid暴露给第二Hybrid的JS组件的第二Hybrid的JS接口与第一Hybrid暴露给第一Hybrid的JS组件的第一Hybrid的JS接口相同时,JS适配接口也需与第二Hybrid的JS接口相同以便数据传输。
还需要说明的是,在一些可行的实施例中,JS适配接口包括第一JS适配接口和第二JS适配接口,其中第二JS适配接口用于供JS适配组件从第二Hybrid的JS组件获取第二组件数据,第二JS适配接口是模拟第二Hybrid的JS接口;第一JS适配接口是用于供JS适配组件调用第一Hybrid的JS接口来实现数据传输,第一JS适配接口与第一Hybrid的JS组件接口相同。在另一些可行的实施例中,JS适配接口既充当被第二Hybrid的原生组件调用的接口,同时还充当用于调用第一Hybrid的JS接口的接口。
同理,在一些可行的实施例中,原生适配接口包括第一原生适配接口和第二原生适配接口,其中第一原生适配接口与第一Hybrid的原生组件的接口相同,用于供第一Hybrid的原生层调用以传输数据;第二原生适配接口用于调用第二Hybrid的原生组件的接口来实现数据传输。或者在其他可行的实施例中,原生适配接口既充当被第一Hybrid的桥接模块的原生层调用的接口,同时还充当用于调用第二Hybrid的原生组件的接口的接口。
综上所述,基于在不同Hybrid的桥接模块从JS组件获取组件数据封装方式不同,导致一个Hybrid的组件数据是无法直接传入另一个Hybrid的桥接模块,因此本发明实施例通过上述方法将第二Hybrid的第二组件数据封装成适用于第一Hybrid的参数数据包,以便可以将其传入第一Hybrid的桥接模块;另一方面,由于存在不同Hybrid的桥接模块调用原生组件的调用规则不同,而导致一个Hybrid的桥接模块是无法将数据传入另一Hybrid的原生组件中,因此本发明实施例通过上述方法使原生适配组件按照第二Hybrid的原生组件的调用规则调用第二Hybrid的原生组件的接口来传输数据。再者,若不同Hybrid的桥接模块暴露给JS组件的JS接口不同而导致无法兼容,本发明实施例通过上述方法将JS适配组件中的JS适配接口模拟第二Hybrid的JS接口,以便JS适配组件可以从第二Hybrid的JS组件获取到第二组件数据。
相较于上述方案,在其他可行的实施例中,若执行完当前业务后,需要将数据回调时,则需要将执行业务后的回调数据从第二Hybrid的原生组件回调至第二Hybrid的JS组件。请看图4,是本发明实施例提供的一种基于Hybrid的兼容方法中回调过程的示意性流程图。如图所示,上述一种基于Hybrid的兼容方法,还包括:
S401,原生适配组件从第二Hybrid的原生组件获取完成任务后的回调数据。
具体的,回调数据是执行业务后生成的数据。例如本地执行完任务后,页面上的信息需要同步更新时,则需要将本地执行任务后生成的数据返回至JS组件。
一方面,若存在第二Hybrid暴露给第二Hybrid的原生组件的第二Hybrid的原生层回调接口与第一Hybrid暴露给第一Hybrid的原生组件的原生层回调接口不同时,优选原生适配组件包括原生适配回调接口,原生适配组件从第二Hybrid的原生组件获取完成任务后的回调数据,具体包括:
原生适配组件通过原生适配回调接口从第二Hybrid的原生组件获取完成任务后的回调数据,原生适配回调接口是模拟第二Hybrid的原生层回调接口,第二Hybrid的原生层回调接口原本用于供第二Hybrid的桥接模块从第二Hybrid的JS组件获取回调数据。
或者在其他可行的实施例中,原生适配回调接口与第二Hybrid的原生层回调接口相同。
S402,原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据。
具体的,基于不同Hybrid的桥接模块所需要的回调数据的数据封装方式不同,因此一个Hybrid的回调数据不能适用于不同Hybrid的桥接模块。故本实施中将回调数据封装为适用于第一Hybrid的回调数据。
S403,原生适配组件发送回调数据至第一Hybrid的桥接模块。
这是基于原生适配组件可视为一个第一Hybrid的原生组件,因此原生适配组件可以直接调用原生层的原生层回调接口来发送回调数据。其中,回调数据在第一Hybrid的桥接模块经由原生层、Webview、再到JS层。
S404,JS适配组件从第一Hybrid的桥接模块获取回调数据。
这是基于JS适配组件可以视为一个第一Hybrid的JS组件,第一Hybrid的桥接模块中的JS层可以直接调用JS适配组件JS适配回调接口来传送回调数据。
S405,JS适配组件按照预设的第二Hybrid的JS组件的回调规则将回调数据发送给第二Hybrid的JS组件。
具体的,可能存在不同Hybrid的桥接模块调用JS组件的调用规则不同,因此JS适配组件调用第二Hybrid的JS组件是需要按照第二Hybrid的JS组件的调用规则调用。例如调用函数不同时,则需要按照第二Hybrid的JS组件的调用函数进行调用。
相较于上述方案,进一步地优选根据实例化对象进行调取回调数据时,基于上述回调过程的方法,其中,
步骤S305原生层根据第一组件数据中的原生适配组件的类名和方法名调用相对应的第一Hybrid的原生适配组件的原生适配接口来实现数据传输之前,所述兼容方法还包括:
原生层根据第一组件数据生成原生适配组件的第一回调实例对象。具体的,根据第一组件数据中的参数数据包以及原生适配组件的类名和方法名生成原生适配组件的第一回调实例对象,其实例化对象的过程为:反射机制实例化对应的类对象,并调用对应的方法名,在调用方法的参数中放入与业务相关的参数信息。
因此,步骤S306相对应的原生适配组件从第一Hybrid的桥接模块获取所述第一组件数据中的参数数据包具体包括:
相对应的原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包和第一回调实例对象。
因此,步骤S308原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输具体包括:
原生适配组件根据第二组件数据模拟出第二Hybrid的原生组件的第二回调实例对象;以及原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口来将第二回调实例对象以及输入参数传输至第二Hybrid的原生组件。
具体的,根据第二组件数据中的第二Hybrid的原生组件的类名和方法名以及输入参数生成第二Hybrid的原生组件的第二回调实例对象。
因此,步骤S401原生适配组件从第二Hybrid的原生组件获取完成任务后的回调数据,具体包括:
原生适配组件根据第二Hybrid的原生组件的第二回调实例对象从第二Hybrid的原生组件获取回调数据。
更进一步地优选,原生适配组件根据第二Hybrid的原生组件的第二回调实例对象并通过原生适配回调接口从第二Hybrid的原生组件获取回调数据。其中原生适配回调接口是模拟第二Hybrid的原生层回调接口。
因此,S402原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据,具体是:
原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的第一回调实例对象的数据。
应当理解,根据实例化对象进行调取回调数据时,原生适配组件根据第二回调实例对象从第二Hybrid的原生组件调用回调数据,第一Hybrid的桥接模块根据第一回调实例对象从原生适配组件调用回调数据。通过上述方式,可以更加快速的确认回调数据的调用途径,提高回调效率。其中第一回调实例是在第一Hybrid的桥接模块的原生层生成;第二回调实例是在原生适配组件中生成。
还需要说明的是,在一些可行的实施例中,原生适配回调接口包括第一原生适配回调接口和第二原生适配回调接口,其中第二原生适配回调接口用于供原生适配组件从第二Hybrid的原生组件获取回调数据,第二原生适配回调接口是模拟第二Hybrid的原生层回调接口;第一原生适配回调接口是用于供原生适配组件调用第一Hybrid的桥接模块的原生层的第一原生层回调接口,第一原生适配回调接口与第一Hybrid的原生组件的接口相同。在另一些可行的实施例中,原生适配回调接口既充当被第二Hybrid的原生组件调用的接口,同时还充当用于调用原生层的第一原生层回调接口的接口。
同理,在一些可行的实施例中,JS适配回调接口包括第一JS适配回调接口和第二JS适配回调接口,其中第一JS适配回调接口与第一Hybrid的JS组件的第一Hybrid的JS组件接口相同,用于供第一Hybrid的桥接模块的JS层调用以传输数据;第二JS适配回调接口用于调用第二Hybrid的JS组件的接口来实现数据传输。或者在其他可行的实施例中,JS适配回调接口既充当被第一Hybrid的桥接模块的JS层调用的接口,同时还充当用于调用第二Hybrid的JS组件的接口的接口。
综上所述,在需要将回调数据返回至第二Hybrid的原生组件时,基于在不同Hybrid的回调数据封装方式不同,导致一个Hybrid的回调数据是无法直接传入另一个Hybrid的桥接模块,因此本发明实施例通过上述方法将第二Hybrid的回调数据封装成适用于第一Hybrid的回调数据,以便可以将其传入第一Hybrid的桥接模块;另一方面,由于存在不同Hybrid的桥接模块调用JS组件的调用规则不同,而导致一个Hybrid的桥接模块是无法将数据传入另一Hybrid的JS组件中,因此本发明实施例通过上述方法使JS适配组件按照第二Hybrid的JS组件的调用规则调用第二Hybrid的JS组件的接口来传输数据。再者,若不同Hybrid的桥接模块暴露给原生组件的原生层回调接口不同而导致无法兼容,本发明实施例将原生适配组件中的原生适配回调接口模拟第二Hybrid的原生层回调接口,以便原生适配组件可以从第二Hybrid的原生组件获取到回调数据。另一方面,还可以根据实例化对象进行数据回调,具体的原生适配组件根据第二回调实例对象从第二Hybrid的原生组件调用回调数据,第一Hybrid的桥接模块根据第一回调实例对象从原生适配组件调用回调数据。提高了回调效率。
请看图5,是本发明实施例提供的一种基于Hybrid的运行***的功能模块图。如图所示,运行***500包括运行装置51一个或一个以上的第二Hybrid的JS组件52和一个或一个以上的第二Hybrid的原生组件53。其中运行装置51包括第一Hybrid,第一Hybrid包括适配件55和桥接模块54。适配件55包括JS适配组件56和原生适配组件57,其中第一Hybrid的桥接模块54用于连接JS适配组件56和原生适配组件57。
其中,JS适配组件56包括第一接收单元561、第一封装单元562和第一调用单元563,原生适配组件57包括第二接收单元571、解析单元572以及第二调用单元573。第一Hybrid的桥接模块54包括第一传送单元541和第二传送单元542。
第一接收单元561,用于JS适配组件56从第二Hybrid的JS组件52获取第二组件数据。
具体的,第二组件数据包括用于执行当前业务的第二Hybrid的原生组件53的类名和方法名。第二Hybrid的原生组件53的类名和方法名是第二Hybrid的原生组件53的身份标识,根据上述类名和方法名可以调用到相对应的第二Hybrid的原生组件53。进一步的,第二组件数据还包括第二Hybrid的原生组件53的输入参数。输入参数是需要传入第二Hybrid的原生组件53的且与当前业务相关的参数,以便第二Hybrid的原生组件53执行当前业务。更进一步地,第二组件数据还包括成功回调函数和失败回调函数。
需要说明的是,JS适配组件包括JS适配接口,第一接收单元561通过JS适配接口从第二Hybrid的JS组件获取第二组件数据,其中JS适配接口是模拟第二Hybrid的JS接口的或者JS适配接口与第二Hybrid的JS接口是相同的,而第二Hybrid的JS接口是用于供第二Hybrid的桥接模块接收第二Hybrid的JS组件的调用通知来获取第二组件数据,因此第二组件数据未被修改时也可调用到JS适配接口来实现数据传输。
在另一些实施例中,第一接收单元561,还用于JS适配组件从业务层获取到待通讯的第二Hybrid的JS组件的信息。JS适配组件56还包括第一发送单元,第一发送单元,用于JS适配组件发送调用指令给第二Hybrid的JS组件,调用指令用于使第二Hybrid的JS组件根据调用指令调用JS适配组件中JS适配接口来传输第二Hybrid的JS组件数据。
第一封装单元562,用于JS适配组件56将第二组件数据封装成适用于第一Hybrid的参数数据包。
具体的,按照预设的适用于第一Hybrid调用的参数规律封装第二组件数据为参数数据包,其中参数规律包括数据的组织方式和结构等。应当理解,参数数据包可以视为JS适配组件56传输给原生适配组件57的传入参数,即将第二组件数据封装成原生适配组件57的传入参数的方式。
第一调用单元563,用于JS适配组件56将第一组件数据传给第一Hybrid的桥接模块54,第一组件数据包括参数数据包以及预存的与JS适配组件56相对应的原生适配组件57的类名和方法名。
具体的,原生适配组件57的类名和方法名用于供第一Hybrid的桥接模块54调用相对应的原生适配组件57的接口进行数据传输,其中,第一调用单元563将第一组件数据传给第一Hybrid的桥接模块54时,具体用于JS适配组件56调用第一Hybrid的桥接模块54中的第一Hybrid的JS接口来传输第一组件数据至第一Hybrid的桥接模块。
这是基于JS适配组件56可以视为第一Hybrid的桥接模块54的一个第一Hybrid的JS组件,因此JS适配组件56可以直接调用第一Hybrid的桥接模块54中的第一Hybrid的JS接口。
第一传送单元541,用于第一Hybrid的桥接模块54的JS层将第一组件数据传输至原生层。
具体的,第一组件数据经由Webview再传入原生层,即通过调用第一Hybrid的原生层接口来实现数据传输。
第二传送单元542,用于原生层根据第一组件数据中的原生适配组件57的类名和方法名调用相对应的原生适配组件57的原生适配接口来实现数据传输。
这是基于原生适配组件57可视为一个第一Hybrid的原生组件,因此原生层可以直接调用原生适配组件57的原生适配接口。
第二接收单元571,用于相对应的原生适配组件57从第一Hybrid的桥接模块54获取所述第一组件数据中的参数数据包。
解析单元572,用于原生适配组件57解析参数数据包来获取第二Hybrid的原生组件53的类名和方法名。
应当理解,解析参数数据包还可以获取到第二Hybrid的原生组件53的输入参数。
第二调用单元573,用于原生适配组件57根据第二Hybrid的原生组件53的类名和方法名并按照预设的第二Hybrid的原生组件53的调用规则调用相对应的第二Hybrid的原生组件53的接口以实现数据传输,以供第二Hybrid的原生组件53执行当前业务。
具体的,可能存在不同Hybrid的桥接模块调用原生组件的调用规则不同,因此原生适配组件57调用第二Hybrid的原生组件53是需要按照第二Hybrid的原生组件53的调用规则调用。例如调用函数不同时,则需要按照第二Hybrid的原生组件53的调用函数进行调用。还应当理解,调用相对应的第二Hybrid的原生组件53的接口以将第二Hybrid的原生组件53的传入参数发送给相对应的第二Hybrid的原生组件53。
相较于上述方案,优选地,第一接收单元561从第二Hybrid的JS组件52获取第二组件数据时,具体用于JS适配组件56通过JS适配接口从第二Hybrid的JS组件52获取第二组件数据,JS适配接口是模拟第二Hybrid的JS接口,第二Hybrid的JS接口原本用于供第二Hybrid的桥接模块从第二Hybrid的JS组件52获取第二组件数据。
需要说明的是,这是基于不同Hybrid暴露给JS组件的JS接口不同时,优选执行上述方案。
相较于上述方案,在其他可行的实施例中,若执行完当前业务后,需要将数据回调时,则需要将执行业务后的回调数据从第二Hybrid的原生组件53回调至第二Hybrid的JS组件52。请继续看图5,JS适配组件56还包括:第一回调单元564以及第一发送单元565,原生适配组件57还包括:第二回调单元574、第二封装单元575、以及第二发送单元576。
其中,第二回调单元574,用于原生适配组件57从第二Hybrid的原生组件53获取完成任务后的回调数据。
具体的,回调数据是执行业务后生成的数据。例如本地执行完任务后,页面上的信息需要同步更新时,则需要将本地执行任务后生成的数据返回至JS组件。
一方面,若存在第二Hybrid暴露给第二Hybrid的原生组件53的原生层回调接口与第一Hybrid暴露给第一Hybrid的原生组件的原生层回调接口不同时,优选原生适配组件57包括原生适配回调接口,第二回调单元574从第二Hybrid的原生组件53获取完成任务后的回调数据时,具体用于原生适配组件57通过原生适配回调接口从第二Hybrid的原生组件53获取完成任务后的回调数据,原生适配回调接口是模拟第二Hybrid的原生层回调接口,第二Hybrid的原生层回调接口原本用于供第二Hybrid的桥接模块从第二Hybrid的JS组件52获取回调数据。
第二封装单元575,用于原生适配组件57根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据。
具体的,基于不同Hybrid的桥接模块所需要的回调数据的数据封装方式不同,因此一个Hybrid的回调数据不能适用于不同Hybrid的桥接模块。故本实施中将回调数据封装为适用于第一Hybrid的回调数据。
第二发送单元576,用于原生适配组件57发送回调数据至第一Hybrid的桥接模块54。
这是基于原生适配组件57可视为一个第一Hybrid的原生组件,因此原生适配组件57可以直接调用原生层的原生层回调接口来发送回调数据。其中,回调数据在第一Hybrid的桥接模块54经由原生层、Webview、再到JS层。
第一发送单元565,用于JS适配组件56从第一Hybrid的桥接模块54获取回调数据。
这是基于JS适配组件56可以视为一个第一Hybrid的JS组件,第一Hybrid的桥接模块54中的JS层可以直接调用JS适配组件56JS适配回调接口来传送回调数据。
第一回调单元564,用于JS适配组件56按照预设的第二Hybrid的JS组件52的回调规则将回调数据发送给第二Hybrid的JS组件52。
具体的,可能存在不同Hybrid的桥接模块调用JS组件的调用规则不同,因此JS适配组件56调用第二Hybrid的JS组件52是需要按照第二Hybrid的JS组件52的调用规则调用。例如调用函数不同时,则需要按照第二Hybrid的JS组件52的调用函数进行调用。
相较于上述方案,进一步地优选根据实例化对象进行调取回调数据时,第一Hybrid的桥接模块54还包括第一实例化单元543。
第一实例化单元543,用于原生层根据第一组件数据生成原生适配组件57的第一回调实例对象。具体的,根据第一组件数据中的参数数据包以及原生适配组件57的类名和方法名生成原生适配组件57的第一回调实例对象,其实例化对象的过程为:反射机制实例化对应的类对象,并调用对应的方法名,在调用方法的参数中放入与业务相关的参数信息。
第二接收单元571件从第一Hybrid的桥接模块54获取所述第一组件数据中的参数数据包时,具体用于相对应的原生适配组件57从第一Hybrid的桥接模块54获取第一组件数据中的参数数据包和第一回调实例对象。
第二调用单元573包括:第二实例化单元以及第三传送单元,其中,
第二实例化单元,用于原生适配组件57根据第二组件数据模拟出第二Hybrid的原生组件53的第二回调实例对象。
第三传送单元,用于原生适配组件57根据第二Hybrid的原生组件53的类名和方法名并按照预设的第二Hybrid的原生组件53的调用规则调用相对应的第二Hybrid的原生组件53的接口来将第二回调实例对象以及输入参数传输至第二Hybrid的原生组件53。具体的,根据第二组件数据中的第二Hybrid的原生组件53的类名和方法名以及输入参数生成第二Hybrid的原生组件53的第二回调实例对象。
第二回调单元574从第二Hybrid的原生组件53获取完成任务后的回调数据时,具体用于原生适配组件57根据第二Hybrid的原生组件53的第二回调实例对象从第二Hybrid的原生组件53获取回调数据。
优选,第二回调单元574根据第二Hybrid的原生组件53的第二回调实例对象并通过原生适配回调接口从第二Hybrid的原生组件53获取回调数据。其中原生适配回调接口是模拟第二Hybrid的原生层回调接口。
第二封装单元575根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据时,具体用于原生适配组件57根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的第一回调实例对象的数据。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者一个以上程序,一个或者一个以上程序可被一个或者一个以上的处理器执行,以执行以下操作:
第一Hybrid的JS适配组件从第二Hybrid的JS组件获取第二组件数据;JS适配组件将第二组件数据封装成适用于第一Hybrid的参数数据包;JS适配组件将第一组件数据传给第一Hybrid的桥接模块,第一组件数据包括参数数据包以及预存的与JS适配组件相对应的原生适配组件的类名和方法名;第一Hybrid的桥接模块的JS层将第一组件数据传输至原生层;原生层根据第一组件数据中的原生适配组件的类名和方法名调用相对应的原生适配组件的原生适配接口来实现数据传输;相对应的原生适配组件从第一Hybrid的桥接模块获取所述第一组件数据中的参数数据包;原生适配组件解析参数数据包来获取第二Hybrid的原生组件的类名和方法名;原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输,以供第二Hybrid的原生组件执行当前业务。
优选地,JS适配组件从第二Hybrid的JS组件获取第二组件数据,具体包括:
JS适配组件通过JS适配接口从第二Hybrid的JS组件获取第二组件数据,JS适配接口是模拟第二Hybrid的JS接口,第二Hybrid的JS接口用于供第二Hybrid的桥接模块从第二Hybrid的JS组件获取第二组件数据。
若执行完当前业务后,需要将数据回调时,一个或者一个以上程序可被一个或者一个以上的处理器执行,以执行以下操作:
原生适配组件从第二Hybrid的原生组件获取完成任务后的回调数据;原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据;原生适配组件发送回调数据至第一Hybrid的桥接模块;JS适配组件从第一Hybrid的桥接模块获取回调数据;JS适配组件按照预设的第二Hybrid的JS组件的回调规则将回调数据发送给第二Hybrid的JS组件。
若根据实例化对象进行调取回调数据时,优选地,一个或者一个以上程序可被一个或者一个以上的处理器执行,以执行以下操作:
原生层根据第一组件数据生成原生适配组件的第一回调实例对象。
优选地,相对应的原生适配组件从第一Hybrid的桥接模块获取所述第一组件数据中的参数数据包具体是相对应的原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包和第一回调实例对象。
优选地,原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输具体包括:
原生适配组件根据第二组件数据模拟出第二Hybrid的原生组件的第二回调实例对象;以及原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口,以供将第二回调实例对象以及输入参数传输至第二Hybrid的原生组件。
优选地,原生适配组件从第二Hybrid的原生组件获取完成任务后的回调数据,具体是原生适配组件根据第二Hybrid的原生组件的第二回调实例对象从第二Hybrid的原生组件获取回调数据。
优选地,原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据,具体是:原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的第一回调实例对象的数据。
需要说明的是,实现两个不同Hybrid的相互兼容需要一个匹配的适配件,实现若干个不同Hybrid的兼容则需要多个匹配的适配件,其中两两Hybrid之间需要一个匹配的适配件,本发明实施例将以两个不同Hybrid的相互兼容为例进行说明。
另一方面,在硬件实现上,以上第一接收单元561、第一封装单元562以及第一调用单元563等可以以硬件形式内嵌于或独立于一种基于Hybrid的运行***中,也可以以硬件形式存储于一种基于Hybrid的运行***的存储器中,以便于处理器执行以上各个单元对应的操作。该处理器可以为中央处理单元(CPU)、微处理器、单片机等。
如图6所示,图6是本发明实施例提供的一种基于Hybrid的运行***的硬件结构图,在本实施例中,该一种基于Hybrid的运行***包括一个或者一个以上处理器601以及存储器602,处理器601和存储器602通过总线连接。
存储器602,用于存储一个或者一个以上程序。具体实现中,本发明实施例的存储器602可以是***存储器,比如,挥发性的(诸如RAM),非易失性的(诸如ROM,闪存等),或者两者的结合。具体实现中,本发明实施例的存储器602还可以是***之外的外部存储器,比如,磁盘、光盘、磁带等。
处理器601,用于执行存储器602中存储的程序,以执行以下操作:
第一Hybrid的JS适配组件从第二Hybrid的JS组件获取第二组件数据;JS适配组件将第二组件数据封装成适用于第一Hybrid的参数数据包;JS适配组件将第一组件数据传给第一Hybrid的桥接模块,第一组件数据包括参数数据包以及预存的与JS适配组件相对应的原生适配组件的类名和方法名;第一Hybrid的桥接模块的JS层将第一组件数据传输至原生层;原生层根据第一组件数据中的原生适配组件的类名和方法名调用相对应的第一Hybrid的原生适配组件的原生适配接口来实现数据传输;相对应的原生适配组件从第一Hybrid的桥接模块获取所述第一组件数据中的参数数据包;原生适配组件解析参数数据包来获取第二Hybrid的原生组件的类名和方法名;原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输,以供第二Hybrid的原生组件执行当前业务。
优选地,JS适配组件从第二Hybrid的JS组件获取第二组件数据,具体包括:
JS适配组件通过JS适配接口从第二Hybrid的JS组件获取第二组件数据,JS适配接口是模拟第二Hybrid的JS接口,第二Hybrid的JS接口用于供第二Hybrid的桥接模块从第二Hybrid的JS组件获取第二组件数据。
若执行完当前业务后,需要将数据回调时,处理器还执行以下操作:
原生适配组件从第二Hybrid的原生组件获取完成任务后的回调数据;原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据;原生适配组件发送回调数据至第一Hybrid的桥接模块;JS适配组件从第一Hybrid的桥接模块获取回调数据;JS适配组件按照预设的第二Hybrid的JS组件的回调规则将回调数据发送给第二Hybrid的JS组件。
若根据实例化对象进行调取回调数据时,优选地,处理器还执行以下操作:
原生层根据第一组件数据生成原生适配组件的第一回调实例对象。
优选地,相对应的原生适配组件从第一Hybrid的桥接模块获取所述第一组件数据中的参数数据包具体是相对应的原生适配组件从第一Hybrid的桥接模块获取第一组件数据中的参数数据包和第一回调实例对象。
优选地,原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口以实现数据传输具体包括:
原生适配组件根据第二组件数据模拟出第二Hybrid的原生组件的第二回调实例对象;以及原生适配组件根据第二Hybrid的原生组件的类名和方法名并按照预设的第二Hybrid的原生组件的调用规则调用相对应的第二Hybrid的原生组件的接口,以供将第二回调实例对象以及输入参数传输至第二Hybrid的原生组件。
优选地,原生适配组件从第二Hybrid的原生组件获取完成任务后的回调数据,具体是原生适配组件根据第二Hybrid的原生组件的第二回调实例对象从第二Hybrid的原生组件获取回调数据。
优选地,原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的回调数据,具体是:原生适配组件根据预设的第一Hybrid的回调规则将回调数据封装为适于第一Hybrid的第一回调实例对象的数据。
应当理解,在本发明实施例中,所称处理器601可以是中央处理单元(CentralProcessing Unit,CPU),该处理器601还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
需要说明的是,本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例终端中的单元可以根据实际需要进行合并、划分和删减。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如若干个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于Hybrid的兼容方法,其特征在于,所述方法包括:
第一Hybrid框架的JS适配组件从第二Hybrid框架的JS组件获取第二组件数据,所述第二组件数据包括用于执行当前业务的所述第二Hybrid框架的原生组件的类名和方法名;
所述JS适配组件将所述第二组件数据封装成适用于第一Hybrid框架的参数数据包;
所述JS适配组件将第一组件数据传给所述第一Hybrid框架的桥接模块,所述第一组件数据包括所述参数数据包以及预存的与所述JS适配组件相对应的第一Hybrid框架中的原生适配组件的类名和方法名,所述原生适配组件的类名和方法名用于供所述第一Hybrid框架的桥接模块调用相对应的原生适配组件的接口进行数据传输;
相对应的所述原生适配组件从所述第一Hybrid框架的桥接模块获取所述第一组件数据中的参数数据包;
所述原生适配组件解析所述参数数据包来获取所述第二Hybrid框架的原生组件的类名和方法名;
所述原生适配组件根据所述第二Hybrid框架的原生组件的类名和方法名并按照预设的所述第二Hybrid框架的原生组件的调用规则调用相对应的第二Hybrid框架的原生组件的接口以实现数据传输,以供所述第二Hybrid框架的原生组件执行所述当前业务。
2.根据权利要求1所述的方法,其特征在于,所述JS适配组件包括JS适配接口,
第一Hybrid框架的JS适配组件从第二Hybrid框架的JS组件获取第二组件数据,具体包括:
所述JS适配组件通过所述JS适配接口从第二Hybrid框架的JS组件获取第二组件数据,所述JS适配接口是模拟第二Hybrid框架的JS接口,所述第二Hybrid框架的JS接口原来是用于供所述第二Hybrid框架的桥接模块接收第二Hybrid框架的JS组件的调用通知来获取第二组件数据;
所述JS适配组件将第一组件数据传给所述第一Hybrid框架的桥接模块,具体包括:
所述JS适配组件调用所述第一Hybrid框架的JS接口用来传送第一组件数据至所述第一Hybrid框架的桥接模块。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述原生适配组件从所述第二Hybrid框架的原生组件获取完成任务后的回调数据;
所述原生适配组件根据预设的所述第一Hybrid框架的回调规则将所述回调数据封装为适于所述第一Hybrid框架的回调数据;
所述原生适配组件发送封装后的回调数据至所述第一Hybrid框架的桥接模块;
所述JS适配组件从所述第一Hybrid框架的桥接模块获取到所述回调数据;
所述JS适配组件按照预设的所述第二Hybrid框架的JS组件的回调规则将所述回调数据发送给所述第二Hybrid框架的JS组件。
4.根据权利要求3所述的方法,其特征在于,所述第二组件数据还包括第二Hybrid框架的原生组件的输入参数,
所述原生适配组件根据所述第二Hybrid框架的原生组件的类名和方法名并按照预设的所述第二Hybrid框架的原生组件的调用规则调用相对应的第二Hybrid框架的原生组件的接口以实现数据传输,具体包括:
所述原生适配组件根据所述第二组件数据模拟出第二Hybrid框架的原生组件的第二回调实例对象;
所述原生适配组件根据所述第二Hybrid框架的原生组件的类名和方法名并按照预设的所述第二Hybrid框架的原生组件的调用规则调用相对应的第二Hybrid框架的原生组件的接口,以供将所述第二回调实例对象以及所述输入参数传输至所述第二Hybrid框架的原生组件;
所述原生适配组件从所述第二Hybrid框架的原生组件获取完成任务后的回调数据,具体包括:
所述原生适配组件根据所述第二回调实例对象从所述第二Hybrid框架的原生组件获取回调数据。
5.一种适配件,其特征在于,所述适配件设置于第一Hybrid框架,用于使第二Hybrid框架的组件与第一Hybrid框架相兼容,所述适配件包括JS适配组件和原生适配组件,所述JS适配组件包括第一接收单元、第一封装单元和第一调用单元,所述原生适配组件包括第二接收单元、解析单元以及第二调用单元,
所述第一接收单元,用于从第二Hybrid框架的JS组件获取第二组件数据,所述第二组件数据包括用于执行当前业务的所述第二Hybrid框架的原生组件的类名和方法名;
所述第一封装单元,用于将所述第二组件数据封装成适用于第一Hybrid框架的参数数据包;
所述第一调用单元,用于将第一组件数据传给所述第一Hybrid框架的桥接模块,所述第一组件数据包括所述参数数据包以及预存的与所述JS适配组件相对应的第一Hybrid框架中的原生适配组件的类名和方法名,所述原生适配组件的类名和方法名用于供所述第一Hybrid框架的桥接模块调用相对应的原生适配组件的接口进行数据传输;
所述第二接收单元,用于相对应的所述原生适配组件从所述第一Hybrid框架的桥接模块获取所述第一组件数据中的参数数据包;
所述解析单元,用于解析所述参数数据包来获取所述第二Hybrid框架的原生组件的类名和方法名;
所述第二调用单元,用于根据所述第二Hybrid框架的原生组件的类名和方法名并按照预设的所述第二Hybrid框架的原生组件的调用规则调用相对应的第二Hybrid框架的原生组件的接口以实现数据传输,以供所述第二Hybrid框架的原生组件执行所述当前业务。
6.根据权利要求5所述的适配件,其特征在于,所述JS适配组件包括JS适配接口,所述第一接收单元获取所述第二组件数据时,具体用于通过所述JS适配接口从第二Hybrid框架的JS组件获取第二组件数据,所述JS适配接口是模拟第二Hybrid框架的JS接口,所述第二Hybrid框架的JS接口原来是用于供所述第二Hybrid框架的桥接模块接收第二Hybrid框架的JS组件的调用通知来获取第二组件数据;
所述第一调用单元将第一组件数据传给所述第一Hybrid框架的桥接模块时,具体用于调用所述第一Hybrid框架的JS接口用来传送第一组件数据至所述第一Hybrid框架的桥接模块。
7.根据权利要求5所述的适配件,其特征在于,所述JS适配组件还包括第一回调单元以及第一发送单元;所述原生适配组件包括第二回调单元、第二封装单元、以及第二发送单元,
所述第二回调单元,用于从所述第二Hybrid框架的原生组件获取完成任务后的回调数据;
所述第二封装单元,用于根据预设的所述第一Hybrid框架的回调规则将所述回调数据封装为适于所述第一Hybrid框架的回调数据;
所述第二发送单元,用于发送封装后的回调数据至所述第一Hybrid框架的桥接模块;
所述第一发送单元,用于从所述第一Hybrid框架的桥接模块获取到所述回调数据;
所述第一回调单元,用于所述JS适配组件按照预设的所述第二Hybrid框架的JS组件的回调规则将所述回调数据发送给所述第二Hybrid框架的JS组件。
8.根据权利要求7所述的适配件,其特征在于,所述第二组件数据还包括第二Hybrid框架的原生组件的输入参数,所述第二调用单元包括第二实例化单元和第三传送单元,
所述第二实例化单元,用于所述原生适配组件根据所述第二组件数据模拟出第二Hybrid框架的原生组件的第二回调实例对象;
所述第三传送单元,用于所述原生适配组件根据所述第二Hybrid框架的原生组件的类名和方法名并按照预设的所述第二Hybrid框架的原生组件的调用规则调用相对应的第二Hybrid框架的原生组件的接口,以供将所述第二回调实例对象以及所述输入参数传输至所述第二Hybrid框架的原生组件;
所述第二回调单元获取回调数据时,具体用于所述原生适配组件根据所述第二回调实例对象从所述第二Hybrid框架的原生组件获取回调数据。
9.一种基于Hybrid的运行装置,其特征在于,所述运行装置包括第一Hybrid框架的框架,所述第一Hybrid框架包括适配件和桥接模块,所述适配件包括JS适配组件和原生适配组件,第一Hybrid框架的桥接模块用于连接所述JS适配组件和所述原生适配组件,
所述JS适配组件包括第一接收单元、第一封装单元和第一调用单元,所述原生适配组件包括第二接收单元、解析单元以及第二调用单元,
所述第一接收单元,用于从第二Hybrid框架的JS组件获取第二组件数据,所述第二组件数据包括用于执行当前业务的所述第二Hybrid框架的原生组件的类名和方法名;
所述第一封装单元,用于将所述第二组件数据封装成适用于第一Hybrid框架的参数数据包;
所述第一调用单元,用于将第一组件数据传给所述第一Hybrid框架的桥接模块,所述第一组件数据包括所述参数数据包以及预存的与所述JS适配组件相对应的第一Hybrid框架中的原生适配组件的类名和方法名,所述原生适配组件的类名和方法名用于供所述第一Hybrid框架的桥接模块调用相对应的原生适配组件的接口进行数据传输;
所述第二接收单元,用于相对应的所述原生适配组件从所述第一Hybrid框架的桥接模块获取所述第一组件数据中的参数数据包;
所述解析单元,用于解析所述参数数据包来获取所述第二Hybrid框架的原生组件的类名和方法名;
所述第二调用单元,用于根据所述第二Hybrid框架的原生组件的类名和方法名并按照预设的所述第二Hybrid框架的原生组件的调用规则调用相对应的第二Hybrid框架的原生组件的接口以实现数据传输,以供所述第二Hybrid框架的原生组件执行所述当前业务。
10.一种基于Hybrid的运行***,其特征在于,所述运行***包括第一Hybrid框架和第二Hybrid框架的JS组件和第二Hybrid框架的原生组件,所述第一Hybrid框架包括适配件和桥接模块,所述适配件包括JS适配组件和原生适配组件,第一Hybrid框架的桥接模块用于连接所述JS适配组件和所述原生适配组件,所述JS适配组件用于连接所述第二Hybrid框架的JS组件和所述第一Hybrid框架的桥接模块,所述原生适配组件用于连接所述第一Hybrid框架的桥接模块和所述第二Hybrid框架的原生组件,
其中,所述JS适配组件包括第一接收单元、第一封装单元和第一调用单元,所述原生适配组件包括第二接收单元、解析单元以及第二调用单元,
所述第一接收单元,用于从第二Hybrid框架的JS组件获取第二组件数据,所述第二组件数据包括用于执行当前业务的所述第二Hybrid框架的原生组件的类名和方法名;
所述第一封装单元,用于将所述第二组件数据封装成适用于第一Hybrid框架的参数数据包;
所述第一调用单元,用于将第一组件数据传给所述第一Hybrid框架的桥接模块,所述第一组件数据包括所述参数数据包以及预存的与所述JS适配组件相对应的第一Hybrid框架中的原生适配组件的类名和方法名,所述原生适配组件的类名和方法名用于供所述第一Hybrid框架的桥接模块调用相对应的原生适配组件的接口进行数据传输;
所述第二接收单元,用于相对应的所述原生适配组件从所述第一Hybrid框架的桥接模块获取所述第一组件数据中的参数数据包;
所述解析单元,用于解析所述参数数据包来获取所述第二Hybrid框架的原生组件的类名和方法名;
所述第二调用单元,用于根据所述第二Hybrid框架的原生组件的类名和方法名并按照预设的所述第二Hybrid框架的原生组件的调用规则调用相对应的第二Hybrid框架的原生组件的接口以实现数据传输,以供所述第二Hybrid框架的原生组件执行所述当前业务。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710155069.5A CN107678778B (zh) | 2017-03-14 | 2017-03-14 | 基于Hybrid的兼容方法、适配件、运行装置及*** |
US16/097,831 US10635436B2 (en) | 2017-03-14 | 2017-06-29 | Compatibility method based on hybrid, adapter, operation device, system and computer-readable storage medium |
PCT/CN2017/090919 WO2018166107A1 (zh) | 2017-03-14 | 2017-06-29 | 基于Hybrid的兼容方法、适配件、运行装置、***以及计算机可读存储介质 |
SG11201809613XA SG11201809613XA (en) | 2017-03-14 | 2017-06-29 | Compatibility method based on hybrid, adapter, operation device, system and computer-readable storage medium |
TW106138203A TWI650645B (zh) | 2017-03-14 | 2017-11-03 | 基於Hybrid的兼容方法、適配件、運行裝置及系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710155069.5A CN107678778B (zh) | 2017-03-14 | 2017-03-14 | 基于Hybrid的兼容方法、适配件、运行装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107678778A CN107678778A (zh) | 2018-02-09 |
CN107678778B true CN107678778B (zh) | 2019-12-13 |
Family
ID=61133848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710155069.5A Active CN107678778B (zh) | 2017-03-14 | 2017-03-14 | 基于Hybrid的兼容方法、适配件、运行装置及*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US10635436B2 (zh) |
CN (1) | CN107678778B (zh) |
SG (1) | SG11201809613XA (zh) |
TW (1) | TWI650645B (zh) |
WO (1) | WO2018166107A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11394830B2 (en) * | 2009-01-28 | 2022-07-19 | Virtual Hold Technology Solutions, Llc | System and method for hybrid callback management with biometric authentication |
CN109144479A (zh) * | 2018-07-20 | 2019-01-04 | 中国邮政储蓄银行股份有限公司 | 开发架构 |
CN109086150A (zh) * | 2018-09-20 | 2018-12-25 | 杭州安恒信息技术股份有限公司 | 一种避免多个异步方法重复执行的方法、装置及电子设备 |
CN109725887B (zh) * | 2018-12-14 | 2024-04-26 | 中国平安财产保险股份有限公司 | 基于消息研发框架的数据交互方法、装置及终端设备 |
CN110569133A (zh) * | 2019-08-29 | 2019-12-13 | 五八有限公司 | 实现app间业务融合的方法、装置、电子设备及存储介质 |
CN110543372B (zh) * | 2019-09-10 | 2023-03-28 | 北京百度网讯科技有限公司 | 移动终端原生端与h5端交互的方法及装置 |
US11915432B2 (en) | 2020-01-16 | 2024-02-27 | Samsung Electronics Co., Ltd. | Method and apparatus for tracking target |
CN112882690B (zh) * | 2021-01-28 | 2024-04-19 | 抖音视界有限公司 | 一种应用开发方法及装置 |
CN115514611B (zh) * | 2022-09-21 | 2023-07-28 | 杭州网易再顾科技有限公司 | 消息处理方法、装置、设备及存储介质 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120233235A1 (en) * | 2011-03-07 | 2012-09-13 | Jeremy David Allaire | Methods and apparatus for content application development and deployment |
TW201239656A (en) * | 2011-03-25 | 2012-10-01 | Oss Integral Inst Co Ltd | Desktop software development framework method |
US8635522B2 (en) * | 2011-05-12 | 2014-01-21 | Sybase, Inc. | Hybrid web container for cross-platform mobile applications |
US9582598B2 (en) * | 2011-07-05 | 2017-02-28 | Visa International Service Association | Hybrid applications utilizing distributed models and views apparatuses, methods and systems |
US9848032B2 (en) * | 2011-12-28 | 2017-12-19 | Intel Corporation | Method and apparatus for streaming metadata between devices using JavaScript and HTML5 |
JP5922255B2 (ja) * | 2011-12-28 | 2016-05-24 | インテル コーポレイション | データストリームのリアルタイム自然言語処理 |
US8966508B2 (en) * | 2012-02-20 | 2015-02-24 | Electronics And Telecommunications Research Institute | Method for executing hybrid web application and apparatus therefor |
US9355077B2 (en) * | 2012-07-10 | 2016-05-31 | Telerik, AD | Content management system employing a hybrid web application framework |
US20140047413A1 (en) * | 2012-08-09 | 2014-02-13 | Modit, Inc. | Developing, Modifying, and Using Applications |
US9910833B2 (en) * | 2012-11-13 | 2018-03-06 | International Business Machines Corporation | Automatically rendering web and/or hybrid applications natively in parallel |
US9563448B2 (en) * | 2013-03-13 | 2017-02-07 | International Business Machines Corporation | Mobilizing a web application to take advantage of a native device capability |
US9047404B1 (en) * | 2013-03-13 | 2015-06-02 | Amazon Technologies, Inc. | Bridge to connect an extended development capability device to a target device |
KR101489199B1 (ko) * | 2013-03-29 | 2015-02-03 | 주식회사 엘지씨엔에스 | 컴퓨터에서 실행 가능한 어플리케이션 패키지를 생성하는 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체 |
US11803786B2 (en) * | 2013-04-10 | 2023-10-31 | eData Platform, Corp. | Enterprise integration platform |
US9069375B2 (en) * | 2013-04-30 | 2015-06-30 | MobileDataForce, Inc. | Method and system for platform-independent application development |
US9161156B2 (en) * | 2013-07-31 | 2015-10-13 | Sap Se | Tiles in a mobile application framework |
CN104461491B (zh) * | 2013-09-24 | 2017-10-27 | 阿里巴巴集团控股有限公司 | 一种Hybrid组件的运行方法和*** |
US9274784B2 (en) * | 2014-06-02 | 2016-03-01 | Sap Se | Automatic deployment and update of hybrid applications |
US9851968B2 (en) * | 2014-09-26 | 2017-12-26 | Oracle International Corporation | High performant iOS template based application build system |
US9858174B2 (en) * | 2014-09-26 | 2018-01-02 | Oracle International Corporation | Updatable native mobile application for testing new features |
US10073679B2 (en) * | 2014-09-26 | 2018-09-11 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
CN105607895B (zh) * | 2014-11-21 | 2021-03-02 | 阿里巴巴集团控股有限公司 | 一种基于应用程序编程接口的应用程序的运行方法和装置 |
US9471303B2 (en) * | 2015-02-04 | 2016-10-18 | Sap Se | Façade framework for IDE |
US9959100B2 (en) * | 2015-08-12 | 2018-05-01 | Oracle International Corporation | Efficient storage and transfer of iOS binary files |
US10452497B2 (en) * | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10838778B2 (en) * | 2016-02-04 | 2020-11-17 | Mobile Tappestry, LLC | Hybrid application system to utilize native device features of a mobile device |
CN105930467B (zh) * | 2016-04-22 | 2019-10-29 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
US10534584B2 (en) * | 2016-05-04 | 2020-01-14 | Sap Se | Enhanced software application ecosystem |
CN106020845A (zh) * | 2016-05-31 | 2016-10-12 | 广东能龙教育股份有限公司 | 一种客户端混合快速开发方法 |
CN106131143A (zh) * | 2016-06-28 | 2016-11-16 | 北京车智赢科技有限公司 | 一种实现Hybrid App的HTML与Native交互的方法 |
US10372443B2 (en) * | 2016-10-18 | 2019-08-06 | Oracle International Corporation | Multi-platform pattern-based user interfaces |
US9886272B1 (en) * | 2016-12-05 | 2018-02-06 | Sap Se | Transformation of a web application into a hybrid mobile application |
-
2017
- 2017-03-14 CN CN201710155069.5A patent/CN107678778B/zh active Active
- 2017-06-29 SG SG11201809613XA patent/SG11201809613XA/en unknown
- 2017-06-29 WO PCT/CN2017/090919 patent/WO2018166107A1/zh active Application Filing
- 2017-06-29 US US16/097,831 patent/US10635436B2/en active Active
- 2017-11-03 TW TW106138203A patent/TWI650645B/zh active
Also Published As
Publication number | Publication date |
---|---|
SG11201809613XA (en) | 2018-11-29 |
TW201833784A (zh) | 2018-09-16 |
WO2018166107A1 (zh) | 2018-09-20 |
TWI650645B (zh) | 2019-02-11 |
CN107678778A (zh) | 2018-02-09 |
US10635436B2 (en) | 2020-04-28 |
US20190095200A1 (en) | 2019-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107678778B (zh) | 基于Hybrid的兼容方法、适配件、运行装置及*** | |
CN111176626B (zh) | 跨编程语言的代码调用方法及装置、介质、设备 | |
CN109800173B (zh) | 程序调试方法、装置及存储介质 | |
CN108345531B (zh) | 一种测试方法、装置及*** | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
CN110580154A (zh) | 基于h5接入方式的接入方法及其接入组件和移动终端 | |
CN108874677A (zh) | 一种安卓终端及其测试方法和*** | |
CN111176629A (zh) | 一种应用开发的方法和装置 | |
US11709722B2 (en) | Extensible communication framework and communication method supporting multiple communication protocols | |
CN113672405A (zh) | 数据交互***和基于数据交互***的页面展示方法 | |
CN114168460A (zh) | 混合开发中前端代码的远程调试方法、设备及存储介质 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN112015384A (zh) | 一种接口映射方法和装置 | |
CN106550026B (zh) | 一种网络通信装置及方法 | |
CN110968358A (zh) | 一种基于浏览器插件加载脚本模块的方法及装置 | |
CN109298852A (zh) | 简化虚拟现实应用程序开发的方法及可读存储介质 | |
CN112073488A (zh) | 处理请求的方法及装置 | |
WO2023083071A1 (zh) | 视图交互方法、装置、电子设备及计算机可读介质 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN113672225B (zh) | 用户界面的处理方法、装置、设备及存储介质 | |
CN113918245A (zh) | 一种数据调用方法、装置、设备及计算机可读存储介质 | |
CN110502418B (zh) | 一种实现远程调试的方法 | |
CN112579448A (zh) | 混合应用的调试方法与*** | |
CN112714148A (zh) | 一种界面配置方法、装置、设备及介质 | |
CN107454124B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1250584 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |