掌桥专利:专业的专利平台
掌桥专利
首页

一种数据交互方法、系统、电子设备及存储介质

文献发布时间:2023-06-19 11:32:36


一种数据交互方法、系统、电子设备及存储介质

技术领域

本发明涉及HTML技术领域,特别涉及一种数据交互方法、系统、电子设备及存储介质。

背景技术

HTML作为一项成熟的人机交互技术,已在众多应用程序中得到应用。然而在相关技术中,HTML对本地资源的访问受HTTP服务的严格限制,若应用程序所处设备不启动HTTP服务,则无法使用HTML获取本地资源,这为HTML技术在本地程序中的应用带来了不便。因此,如何确保HTML程序高效地获取本地资源是本领域技术人员需要面对的技术问题。

发明内容

本发明的目的是提供一种数据交互方法、系统、电子设备及存储介质,能够为HTML程序提供HTML容器及本地服务容器,以使HTML程序可直接使用HTML容器及本地服务容器进行本地资源获取,无需使用HTTP服务,可确保HTML程序摆脱HTTP服务的束缚,以使HTML能够更好地在本地程序中进行应用。

为解决上述技术问题,本发明提供一种数据交互方法,包括:

HTML程序利用HTML容器提供的服务接口生成本地资源获取请求,并通过所述HTML容器的容器进程将所述本地资源获取请求发送至本地服务容器;

所述本地服务容器利用所述本地服务容器中包含的业务服务对接收到的本地资源获取请求进行处理,得到相应的本地资源数据,并将所述本地资源数据发送至所述HTML容器;

所述HTML容器接收所述本地资源数据,并将所述本地资源数据发送至所述HTML程序。

可选地,所述通过所述HTML容器的容器进程将所述本地资源获取请求发送至本地服务容器,包括:

所述HTML程序将所述本地资源获取请求发送至所述HTML容器的Render进程;

所述Render进程生成并保存所述本地资源获取请求的第一上下文信息,并通过所述HTML容器提供的进程间接口将所述本地资源获取请求发送至所述HTML容器的Browser进程;

所述Browser进程生成并保存所述本地资源获取请求的第二上下文信息,并将所述本地资源获取请求发送至所述本地服务容器。

可选地,所述HTML容器接收所述本地资源数据,并将所述本地资源数据发送至所述HTML程序,包括:

所述Browser进程接收所述本地资源数据,并根据所述第二上下文信息将所述本地资源数据发送至所述Render进程;

所述Render进程接收所述本地资源数据,并根据所述第一上下文信息将所述本地资源数据发送至所述HTML程序。

可选地,在HTML程序利用HTML容器提供的服务接口生成本地资源获取请求之前,还包括:

启动器生成标识符,并将所述标识符发送至所述HTML容器及所述本地服务容器;

所述本地服务容器接收所述标识符,并利用所述标识符创建通信服务端;

所述HTML容器接收所述标识符,并根据所述标识符查找并连接对应的通信服务端。

可选地,在根据所述标识符查找并连接对应的通信服务端之后,还包括:

所述启动器向所述HTML容器对应的第一进程句柄发送第一信息,并向所述本地服务容器对应的第二进程句柄发送第二信息;

若所述启动器接收到所述第一进程句柄返回的第一回执信息,且未接收到所述第二进程句柄返回的第二回执信息,则重新启动本地服务容器;

若所述启动器未接收到所述第一进程句柄返回的第一回执信息,则将所述本地服务容器关闭。

可选地,还包括:

所述本地服务容器生成HTML调用请求,并将所述HTML调用请求发送至所述HTML容器;

所述HTML容器接收所述HTML调用请求,并根据所述HTML调用请求在所述服务接口中查询对应的调用业务信息;

当所述HTML容器查询到所述对应的调用业务信息时,利用所述调用业务信息对所述HTML程序进行调用操作。

可选地,所述HTML容器接收所述HTML调用请求,并根据所述HTML调用请求在所述服务接口中查询对应的调用业务信息,包括:

所述HTML容器的Browser进程接收所述HTML调用请求;

所述Browser进程通过所述HTML容器提供的进程间通信接口,在Render进程提供的服务接口中查询所述HTML调用请求对应的调用业务信息。

本发明还提供一种数据交互系统,包括用于执行上述所述的数据交互方法的装置。

本发明还提供一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述所述的数据交互方法。

本发明还提供一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述的数据交互方法。

本发明提供一种数据交互方法,包括:HTML程序利用HTML容器提供的服务接口生成本地资源获取请求,并通过所述HTML容器的容器进程将所述本地资源获取请求发送至本地服务容器;所述本地服务容器接收所述本地资源获取请求,利用所述本地资源获取请求查询本地资源数据,并将所述本地资源数据发送至所述HTML容器;所述HTML容器接收所述本地资源数据,并将所述本地资源数据发送至所述HTML程序。

可见,在本方法中HTML程序可通过HTML容器及本地服务容器进行本地资源获取。在相关技术中,由于HTML受HTTP服务的严格限制,若HTML程序所处设备不启动HTTP服务则无法使用HTML获取本地资源。而在本方法中,HTML程序可利用HTML容器的服务接口生成本地资源获取请求,并利用HTML容器的容器进程将本地资源获取请求发送至本地服务容器,再由本地服务容器进行本地资源的查询,进而可直接使用HTML容器及本地服务容器进行本地资源获取,全程无需使用HTTP服务,进而也不需要应用程序所在设备启动HTTP服务,可最终确保HTML程序摆脱HTTP服务的束缚,能够更好地在本地程序中进行应用。本发明还提供一种数据交互系统、电子设备及存储介质,具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的一种数据交互方法的流程图;

图2为本发明实施例所提供的另一种数据交互方法的流程图;

图3a为本发明实施例所提供的一种数据交互系统的结构框图;

图3b为本发明实施例所提供的一种HTML程序的结构框图;

图3c为本发明实施例所提供的一种HTML容器的结构框图;

图3d为本发明实施例所提供的一种本地服务容器的结构框图;

图3e为本发明实施例所提供的另一种数据交互系统的结构框图;

图3f为本发明实施例所提供的一种启动器的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

相关技术中,HTML程序对形如文本、音频、图像等本地资源的获取及访问受HTTP服务的严格限制,若程序所在设备未开启HTTP服务,该程序将无法与本地资源进行获取及访问。HTTP服务对HTML程序的限制阻碍了HTML技术在本地应用程序中的使用,为开发人员带来了不便。有鉴于此,本发明提供一种数据交互方法,能够为HTML程序提供HTML容器及本地服务容器,以使HTML程序可直接使用HTML容器及本地服务容器进行本地资源获取,无需使用HTTP服务,可确保HTML程序摆脱HTTP服务的束缚,以使HTML能够更好地在本地程序中进行应用。请参考图1,图1为本发明实施例所提供的一种数据交互方法的流程图,该方法可以包括:

S101、HTML程序利用HTML容器提供的服务接口生成本地资源获取请求,并通过HTML容器的容器进程将本地资源获取请求发送至本地服务容器。

相关技术中,HTML程序在发送本地资源获取请求这一环节中,受HTTP服务的严格限制,若程序所处设备未开启HTTP服务,则HTML程序将无法发送本地资源获取请求。而在本发明实施例中,HTML程序可通过HTML容器完成本地资源获取请求的生成及发送任务,该程序可首先调用HTML容器提供的用于生成本地资源获取请求的服务接口,该服务接口用于实现本地资源获取环节的业务功能;在生成请求后,该程序可进一步通过HTML容器提供的容器进程将本地资源获取请求发送至本地服务容器,由本地服务容器进行本地资源的查询及发送,其中,该容器进程用于本地资源获取请求的发送。可见,HTML程序可通过HTML容器直接完成本地资源获取请求的生成及发送,无需使用HTTP服务,进而也不需要程序所在设备开启HTTP服务,可首先确保HTML程序在本地资源获取请求的发送环节摆脱HTTP服务的束缚。

需要说明的是,本发明实施例并不限定HTML程序及HTML容器最高可支持的HTML版本,例如可以为HTML5,也可以为HTML4,也可以为其他版本的HTML。考虑到HTML5为最新的HTML版本,同时可提供丰富的人机交互功能,因此在本发明实施例中,HTML程序及HTML容器最高可支持的HTML版本为HTML5。

进一步,本发明实施例并不限定HTML容器基于的开发框架,该开发框架可以为任意中嵌入式浏览器框架,例如可以为CEF框架,也可以为Electron框架,其中,CEF(ChromiumEmbedded Framework,嵌入式Chromium框架)是个基于谷歌Chromium项目的开源Webbrowser控件,Electron框架是一个轻量化的前端开发框架,可用于开发桌面项目。考虑到Chromium内核以及CEF框架的应用较为广泛,因此在本发明实施例中,HTML容器可基于CEF框架进行开发。

进一步,可以理解的是,HTML容器中的服务接口可完成本地资源获取环节中的某种或若干种业务功能,而为了完成这些业务功能,服务接口可能具有任意种形式,并可能包含任意的内容,用户可根据实际应用需求进行开发。需要说明的是,本发明实施例并不限定服务接口的开发方式,该服务接口既可以完全自主开发,也可以基于开发框架提供的JavaScript运行环境进行扩展,例如当开发框架为CEF时,可以基于CEF提供的V8引擎进行扩展,其中V8引擎为CEF提供的JavaScript运行环境,位于CEF中的Render进程。考虑到开发框架提供的JavaScript运行环境已能够确保JavaScript代码良好运行,同时能够提供丰富的API功能,方便开发人员进行开发,因此在本发明实施例中,可以基于开发框架提供的JavaScript运行环境进行扩展,具体的,可以基于CEF提供的V8引擎进行扩展。

进一步,本发明实施例并不限定HTML容器中具体的用于发送本地资源获取请求的容器进程,只要该容器进程能够实现本地资源获取请求发送至本地服务容器这一功能即可,例如可以为专为HTML容器自主开发的、用于发送本地资源获取请求的容器进程,当然也可以为基于开发框架提供的进程进行二次开发的容器进程。考虑到开发框架提供的进程能够与开发框架保持较好的融合度,同时也可以节省开发周期,因此该容器进程可利用开发框架提供的进程进行二次开发。考虑到本发明实施例中的HTML容器基于CEF框架开发,而CEF中的Browser进程可用于实现本地资源获取请求的发送功能,同时考虑到HTML容器的服务接口基于Render进程进行开发,因此本发明实施例中的容器进程可以为Render进程及Browser进程,即HTML程序调用服务接口生成本地资源获取请求,并将该请求发送至Render进程,Render进程接收该请求并转发至Browser进程,最后由Browser进程将该请求发送至本地服务容器。需要说明的是,本发明实施例并不限定Render进程与Browser进程之间的通信方式,用户可参考CEF框架以及进程间通信的相关技术。可以理解的是,为了方便本地资源数据的回传,上述进程均需要记录发送本地资源获取请求这一过程中的上下文信息,以便后续根据上下文信息将本地资源数据进行回传。需要说明的是,本发明实施例并不限定上下文信息的具体形式,用户可参考调用链及上下文信息的相关技术。

在一种可能的情况中,HTML程序通过HTML容器的容器进程将本地资源获取请求发送至本地服务容器这一过程,可以包括:

步骤11:HTML程序将本地资源获取请求发送至HTML容器的Render进程;

步骤12:Render进程生成并保存本地资源获取请求的第一上下文信息,并通过HTML容器提供的进程间接口将本地资源获取请求发送至HTML容器的Browser进程;

步骤13:Browser进程生成并保存本地资源获取请求的第二上下文信息,并将本地资源获取请求发送至本地服务容器。

需要说明的是,本发明实施例并不限定进程间接口的具体形式,用户可参考进程间通信的相关技术。

最后,本发明实施例并不限定HTML容器与本地服务容器之间的通信方式,该通信方式可以为任意中进程间通信方式,例如利用管道进行数据通信,也可以利用消息队列进行数据通信,也可以利用共享内存进行数据通信。考虑到管道易于实现,因此在本发明实施例中可采用管道作为HTML容器与本地服务容器之间的通信方式。本发明实施例也不限定具体的管道类型,例如可以为匿名管道,也可以为命名管道。考虑到命名管道应用较为灵活,同时也可保证数据发送端与接收端一一对应,因此在本发明实施例中,HTML容器与本地服务容器之间可以采用命名管道进行数据通信。

S102、本地服务容器利用本地服务容器中包含的业务服务对接收到的本地资源获取请求进行处理,得到相应的本地资源数据,并将本地资源数据发送至HTML容器。

在本发明实施例中,本地服务容器用于完成接收及解析本地资源获取请求,并利用业务服务对本地资源获取请求进行处理得到相应的本地资源数据,最后将查询得到的本地资源数据回传至HTML容器的工作。本发明实施例并不限定本地服务容器的具体形式及内容,用户可根据实际应用需求进行开发;本发明实施例也不限定具体的业务服务,只要该业务服务可根据本地资源获取请求查询得到相应的本地资源数据即可。由于本地资源的查询及回传工作由本地服务容器及HTML容器完成,同时本地资源获取请求的生成及发送依靠HTML容器完成,因此在本发明实施例中,HTML程序与本地资源的交互不需要使用HTTP服务,进而该程序所在设备也不需要开启HTTP服务,可确保HTML程序摆脱HTTP服务的限制,并最终提升HTML技术在本地应用程序开发中的便捷性。

S103、HTML容器接收本地资源数据,并将本地资源数据发送至HTML程序。

可以理解的是,为了确保本地资源获取请求与本地资源数据向对应,以及确保本地资源数据正确回传至HTML程序,在HTML容器接收到本地资源数据后,应当依照本地资源获取请求发送时使用的数据传输路径,将本地资源数据进行原路返回。因此在本步骤中,HTML容器在将本地资源数据发送至HTML程序这一环节中使用的容器进程以及数据传输路径,与HTML容器在将本地资源获取请求发送至本地服务容器这一环节中使用的容器进程及数据传输路径一致,仅在数据传输方向及上下文信息的应用环节存在不同,即在HTML容器在将本地资源数据发送至HTML程序这一环节中,数据传输方向为本地服务容器至HTML程序,上下文信息的应用方式为根据上下文信息将本地资源数据回传;而在将本地资源获取请求发送至本地服务容器这一环节中,数据传输方向为从HTML程序至本地服务容器,而上下文信息的应用方式为根据本地资源获取请求的发送过程生成上下文信息。关于步骤S103中使用的容器进程及数据传输路径的描述与步骤S101中的描述一致,此处不再赘述。在一种可能的情况中,HTML容器使用Render进程及Browser进程进行本地资源获取请求的发送,因此在这种情况中,HTML容器接收本地资源数据,并将本地资源数据发送至HTML程序的过程,可以包括:

步骤21:Browser进程接收本地资源数据,并根据第二上下文信息将本地资源数据发送至Render进程;

步骤22:Render进程接收本地资源数据,并根据第一上下文信息将本地资源数据发送至HTML程序。

最后,可以理解的是,HTML容器用于承载HTML程序,即HTML程序与HTML容器需在同一设备中。本发明实施例并不限定HTML容器是否与本地服务容器位于同一设备中,上述两容器既可位于不同设备中,也可位于同一设备中,用户可根据实际应用需求进行设定。

基于上述实施例,在本方法中HTML程序可通过HTML容器及本地服务容器进行本地资源获取。在相关技术中,由于HTML受HTTP服务的严格限制,若HTML程序所处设备不启动HTTP服务则无法使用HTML获取本地资源。而在本方法中,HTML程序可利用HTML容器的服务接口生成本地资源获取请求,并利用HTML容器的容器进程将本地资源获取请求发送至本地服务容器,再由本地服务容器进行本地资源的查询,进而可直接使用HTML容器及本地服务容器进行本地资源获取,全程无需使用HTTP服务,进而也不需要应用程序所在设备启动HTTP服务,可最终确保HTML程序摆脱HTTP服务的束缚,能够更好地在本地程序中进行应用。

基于上述实施例,由于相关技术中HTML程序与本地服务之间的交互受HTTP服务的限制,同时HTTP服务的工作模式为单工通信,HTML程序与本地服务之间的通信只能由HTML程序发起请求,而本地服务根据请求内容回传响应的本地资源内容,无法实现本地服务对HTML程序的调用,因此HTTP服务阻碍了HTML程序与本地资源之间的双向调用。有鉴于此,本发明还提供可另一种数据交互方法,可利用HTML容器及本地服务容器,为本地服务提供调用HTML程序的方式。为解决上述问题,在一种可能的情况中,请参考图2,图2为本发明实施例所提供的另一种数据交互方法的流程图,该方法可以包括:

S201、本地服务容器生成HTML调用请求,并将HTML调用请求发送至HTML容器。

需要说明的是,本发明实施例中的HTML调用请求用于为HTML容器提供调用信息,以使HTML容器根据调用信息查询具体的调用业务信息,并根据调用业务信息对HTML程序执行调用操作。本发明实施例并不限定HTML调用请求的具体内容及形式,该请求与HTML程序可提供的业务功能及业务功能对应的服务接口形式有关,用户可根据实际应用需求设定具体的HTML调用请求。

S202、HTML容器接收HTML调用请求,并根据HTML调用请求在服务接口中查询对应的调用业务信息。

在本发明实施例中,对HTML程序的调用任务由HTML容器完成。HTML容器根据接收到的HTML调用请求,在服务接口中查询对应的调用业务信息;当HTML容器查询到该调用业务信息后,便利用该业务信息完成对HTML程序的调用操作,进而可确保本地资源也能够调用HTML程序,并最终解决HTML程序与本地资源之间的双向调用问题。

需要说明的是,本发明实施例并不限定HTML容器中用于接收HTML调用请求的对象,该对象可以为完全自主开发的、专为接收HTML调用请求的容器进程,也可以为基于开发框架提供的进程二次开发的容器进程。由于开发框架提供的进程与开发框架融合性较高,同时可节省开发周期,因此在本发明实施例中,接收HTML调用请求的对象可以为基于开发框架提供的进程二次开发的容器进程。需要说明的是,本发明实施例并不限定在此步骤中具体使用的开发框架进程,用户可根据具体选用的开发框架,参考相关的技术。在一种可能的情况中,可使用CEF框架中的Browser进程进行二次开发,以达到接收HTML调用请求的功能效果,即由HTML容器中的Browser进程接收HTML调用请求,并由Browser进程根据HTML调用请求在服务接口中查询对应的调用业务信息。

进一步,本发明实施例并不限定该服务接口是否为通用服务接口,或是基于通用服务接口二次开发的服务注册接口,其中通用服务接口包含有HTML容器可供调用的所有业务功能,而服务注册接口中包含有可供本地服务容器调用的所有业务功能。当HTML容器可供调用的业务功能较少时,无需将可供HTML程序调用的业务功能与可供本地服务容器调用的功能区分开来时,该服务接口可以为通用服务接口;当需要将上述两种业务功能区分开来时,该服务接口也可以为服务注册接口。考虑到HTML容器可提供的业务功能较多,为了方便管理,在本发明实施例中,该服务接口可以为服务注册接口。需要说明的是,当服务接口为服务注册接口时,为了确保HTML程序能够接收到来自本地服务容器的调用信息,需要HTML程序也调用该服务注册接口;同时,为了在本地服务容器对HTML程序的调用过程中,让HTML程序根据调用情况生成响应信息,也可以基于HTML容器中的通用服务接口进行二次开发得到事件注册接口,当HTML程序调用该事件注册接口时,便可对调用环节中的各种事件作出响应,生成响应信息。

最后需要说明的是,本发明实施例并不限定服务注册接口及通用服务接口的开发方式,对该开发方式的限定描述与步骤S101中对服务接口开发方式的限定描述一致,此处不再赘述。

在一种可能的情况中,HTML容器接收HTML调用请求,并根据HTML调用请求在服务接口中查询对应的调用业务信息的过程,可以包括:

步骤31:HTML容器的Browser进程接收HTML调用请求;

步骤32:Browser进程通过HTML容器提供的进程间通信接口,在Render进程提供的服务接口中查询HTML调用请求对应的调用业务信息。

S203、当HTML容器查询到对应的调用业务信息时,利用调用业务信息对HTML程序进行调用操作。

需要说明的是,本发明实施例并不限定具体的调用业务信息,用户可根据实际应用需求进行编写和开发。

基于上述实施例,本方法中的本地服务容器可将HTML调用请求发送至HTML容器,再由HTML容器根据该请求查询对应的调用业务信息,最后根据调用业务信息完成对HTML程序的调用,进而能够实现本地服务对HTML程序的调用功能,同时结合上述实施例,能够解决本地服务与HTML程序之间的双向调用问题,进而在本地服务于HTML程序之间提供了一条双工通道,并最终提升HTML程序与本地服务之间的数据交互的灵活性。

基于上述实施例,下面对HTML容器与本地服务容器之间的数据通信的建立方式进行介绍。在一种可能的情况中,在HTML程序利用HTML容器提供的服务接口生成本地资源获取请求之前,还包括:

S301、启动器生成标识符,并将标识符发送至HTML容器及本地服务容器。

需要说明的是,该标识符为进程间通信的唯一标识符,而启动器的功能首先可以为生成标识符,并将标识符发送至HTML容器及本地服务容器,以使上述两个容器根据标识符建立数据通信。需要说明的是,本发明实施例并不限定表示标识符的具体形式以及生成方法,用户可参考进程间通信的相关技术。本发明实施例也不限定启动器发送标识符的时机,例如可以在启动器确定HTML容器及本地服务容器均已启动后再发送,也可以将标识符存储至启动参数,再将启动参数分别发送至HTML容器及本地服务容器,上述容器在接收到启动参数后启动,并根据启动参数中的标识符建立彼此之间的数据通信。为了提升HTML容器及本地服务容器之间建立数据通信的效率,在本发明实施例中,启动器可将标识符保存至启动参数中,以使上述容器在接收到启动参数并启动后,根据启动参数中的标识符建立数据通信。

进一步,本发明实施例中对HTML容器与本地服务容器之间的数据通信方式的限定描述,与步骤S101中的限定描述一致,此处不再赘述。在一种可能的情况中,HTML容器与本地服务容器之间的数据通信方式可以为命名管道。需要说明的是,本发明实施例并不限定HTML容器与本地服务容器之间利用标识符建立命名管道的具体过程,用户可参考命名管道建立的相关技术。

S302、本地服务容器接收标识符,并利用标识符创建通信服务端。

S303、HTML容器接收标识符,并根据标识符查找并连接对应的通信服务端。

最后,需要说明的是,为了确保启动器能够有效启动HTML容器及本地服务容器,此时需要将启动器、HTML容器及本地服务容器设置于同一设备中。基于上述实施例,本方法可利用启动器自动建立HTML容器与本地服务容器之间的数据通信,无需人工操作,可提升HTML容器与本地服务容器之间的通信建立效率。

基于上述实施例,由于HTML程序对本地资源的获取及访问依赖于HTML容器及本地服务容器,为了确保HTML容器与本地服务容器同时在线,需要对上述两容器的主进程进行守护。下面对容器主进程的守护过程进行介绍,在一种可能的情况中,在根据标识符查找并连接对应的通信服务端之后,还可以包括:

S401、启动器向HTML容器对应的第一进程句柄发送第一信息,并向本地服务容器对应的第二进程句柄发送第二信息。

需要说明的是,第一进程句柄为HTML容器主进程的进程句柄,而第二进程句柄为本地服务容器主进程的进程句柄。对进程句柄的检测可有效判断上述两容器是否在线。在本发明实施例中,对进程句柄的检测方式为向进程句柄发送信息,并接收句柄返回的回执信息。当能够接收到句柄返回的回执信息时,便可确定容器在线,反之则可确定容器离线。需要说明的是,本发明实施例并不限定第一信息、第二信息的具体形式,用户可参考向进程发送信息的相关技术。

进一步,在本发明实施例中,启动器还具有守护容器主进程的功能。需要说明的是,本发明实施例并不限定启动器向进程句柄发送信息的时机,例如启动器可以在HTML容器发送本地资源获取请求时向进程句柄发送信息,也可以周期性地向进程句柄发送信息。为了有效确保两容器同时在线,在本发明实施例中,启动器可以周期性地向进程句柄发送信息。本发明实施例并不限定具体的周期数值,用户可根据实际应用需求确定。

S402、若启动器接收到第一进程句柄返回的第一回执信息,且未接收到第二进程句柄返回的第二回执信息,则重新启动本地服务容器。

需要说明的是,本发明实施例并不限定第一回执信息及第二回执信息的具体形式及内容,用户可参考进程回执信息的相关技术。

可以理解的是,当启动器接收到第一回执信息,但并未接收到第二回执信息时,可确定本地服务容器离线,此时为了确保HTML程序正确获取到本地资源,需要对本地服务容器进行重启。

需要说明的是,本发明实施例并不限定启动器是否需要在发送信息后的预设时间段内接收到回执信息,才判定容器在线,当容器主线程的线程句柄可快速回复回执信息时,启动器对容器在线的判定可无需在预设时间段内执行;当容器主线程可能出现卡顿,进而无法快速回复回执信息,造成HTML程序无法高效获取本地资源时,启动器对容器在线的判定也可以在预设时间段内执行。为了提升判定效率,以确保HTML程序能够高效获取本地资源,可要求启动器在预设时间段内判定容器是否在线,即启动器需要在发送信息后的预设时间段内接收到回执信息,才判定容器在线。本发明实施例并不限定预设时间段的具体数值,用户可根据实际应用需求进行设定。

S403、若启动器未接收到第一进程句柄返回的第一回执信息,则将本地服务容器关闭。

可以理解的是,当启动器未接收到第一回执信息时,可确定HTML容器离线。由于HTML程序位于HTML容器中,当HTML容器离线时HTML程序也退出,因此可将本地服务容器关闭,以节省设备运行资源。

最后,需要说明的是,考虑到本发明实施例中的启动器还需要对HTML容器及本地服务容器的进程句柄进行检测,此时需要将启动器、HTML容器及本地服务容器设置于同一设备,才可确保启动器能够有效进行进程句柄检测。

基于上述实施例,本方法中的启动器还可对HTML容器及本地服务容器的主进程进行守护,以确保HTML容器与本地服务容器同时在线,进而确保HTML程序可与本地资源进行高效交互。

下面对本发明实施例提供的一种数据交互系统、电子设备及存储介质进行介绍,下文描述的数据交互系统、电子设备及存储介质与上文描述的数据交互方法可相互对应参照。

请参考图3a,图3a为本发明实施例所提供的一种数据交互系统的结构框图,该系统可以包括HTML程序310、HTML容器320以及本地服务容器330。

请参考图3b,图3b为本发明实施例所提供的一种HTML程序的结构框图,HTML程序310包括:

第一请求发送模块311,用于利用HTML容器320提供的服务接口生成本地资源获取请求,并通过HTML容器320的容器进程,将本地资源获取请求发送至本地服务容器330;

第一本地资源接收模块312,用于接收HTML容器320发送的本地资源数据;

请参考图3c,图3c为本发明实施例所提供的一种HTML容器的结构框图,HTML容器320可以包括:

容器进程模块321,用于将HTML程序301的本地资源获取请求发送至本地服务容器303;

第二本地资源接收模块322,用于接收本地资源数据,并将本地资源数据发送至HTML程序。

请参考图3d,图3d为本发明实施例所提供的一种本地服务容器的结构框图,本地服务容器330可以包括:

本地资源获取模块331,用于利用本地服务容器330中包含的业务服务对接收到的本地资源获取请求进行处理,得到相应的本地资源数据,并将本地资源数据发送至HTML容器320;

可选地,第一请求发送模块311可以包括:

请求生成子模块,用于利用HTML容器320提供的服务接口生成本地资源获取请求;

请求发送子模块,用于将本地资源获取请求发送至HTML容器320的Render进程;

容器进程模块321可以包括:

第一Render进程模块,用于生成并保存本地资源获取请求的第一上下文信息,并通过HTML容器提供的进程间接口将本地资源获取请求发送至Browser进程;

第一Browser进程模块,用于生成并保存本地资源获取请求的第二上下文信息,并将本地资源获取请求发送至本地服务容器。

可选地,本地资源获取模块331,可以包括:

第二Browser进程模块,用于接收本地资源数据,并根据第二上下文信息将本地资源数据发送至Render进程;

第二Render进程模块,用于接收本地资源数据,并根据第一上下文信息将本地资源数据发送至HTML程序。

可选地,请参考图3e,图3e为本发明实施例所提供的另一种数据交互系统的结构框图,该系统还可包括启动器340;

请参考图3f,图3f为本发明实施例所提供的一种启动器的结构框图,启动器340可以包括:

标识符发送模块341,用于生成标识符,并将标识符发送至HTML容器及本地服务容器;

HTML容器320还可以包括:

第一数据通信建立模块,用于接收标识符,并根据标识符查找并连接对应的通信服务端;

本地服务容器330还可以包括:

第二数据通信建立模块,用于接收标识符,并利用标识符创建通信服务端;

可选地,启动器还可以包括:

信息发送模块,用于向HTML容器320对应的第一进程句柄发送第一信息,并向本地服务容器330对应的第二进程句柄发送第二信息;

第一处理模块,用于在启动器接收到第一进程句柄返回的第一回执信息,且未接收到第二进程句柄返回的第二回执信息时,重新启动本地服务容器;

第二处理模块,用于在启动器未接收到第一进程句柄返回的第一回执信息时,将本地服务容器关闭。

可选地,本地服务容器330还可以包括:

第二请求发送模块,用于生成HTML调用请求,并将HTML调用请求发送至HTML容器320;

HTML容器320还可以包括:

请求接收模块,用于接收HTML调用请求,并根据HTML调用请求在服务接口中查询对应的调用业务信息;

调用模块,用于在查询到对应的调用业务信息时,利用调用业务信息对HTML程序进行调用操作。

可选地,请求接收模块,可以包括:

第三Browser进程模块,用于接收HTML调用请求;

第四Browser进程模块,用于通过HTML容器320提供的进程间通信接口,在Render进程提供的服务接口中查询HTML调用请求对应的调用业务信息。

本发明实施例还提供一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述的数据交互方法的步骤。

由于电子设备部分的实施例与数据交互方法部分的实施例相互对应,因此电子设备部分的实施例请参见数据交互方法部分的实施例的描述,这里暂不赘述。

本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的数据交互方法的步骤。

由于存储介质部分的实施例与数据交互方法部分的实施例相互对应,因此存储介质部分的实施例请参见数据交互方法部分的实施例的描述,这里暂不赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种数据交互方法、系统、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

相关技术
  • 一种数据交互方法、系统、电子设备及存储介质
  • 基于多系统的数据交互方法、装置、电子设备及存储介质
技术分类

06120112966213