页面端与原生端的通信方法、装置、电子设备及可读介质与流程

文档序号:22386944发布日期:2020-09-29 17:49阅读:84来源:国知局
页面端与原生端的通信方法、装置、电子设备及可读介质与流程

本申请实施例涉及互联网技术领域,尤其涉及一种页面端与原生端的通信方法、装置、电子设备及计算机可读介质。



背景技术:

随着移动互联网技术的发展和智能移动终端的普及,移动互联网在生活中的重要性越来越明显,移动端的应用程序的开发也越来越重要,目前移动端的应用程序主要采用混合型开发模式,即同时采用网页语言和程序语言进行编写,通过应用商店区分操作系统,分发用户需要安装的应用程序。因混合开发的应用程序,兼具了良好的用户体验和较低的开发成本低,越来越受到开发者的喜爱。

目前,在安卓设备上,应用程序中的脚本代码与原生代码的通信需要通过网络视图来实现。具体地,首先调用应用程序接口使网络视图支持脚本代码中的功能,然后再调用应用程序接口向网络视图注册一个可供脚本代码调用的方法类,以用于增强脚本代码的功能。然而,android4.2之前的系统版本没有对类方法的调用的限制,导致攻击者可以利用反射机制调用未注册的其它任何类方法,最终导致脚本代码的能力的无限增强。攻击者利用该漏洞可以根据客户端能力为所欲为。因此,应用程序中的脚本代码与原生代码的通信需要对原生代码的系统版本进行兼容。这样,应用程序中的脚本代码与原生代码的通信受到原生端代码的版本或平台的限制。



技术实现要素:

本申请的目的在于提出一种页面端与原生端的通信方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何方便于页面端与原生端通信的问题。

根据本申请实施例的第一方面,提供了一种页面端与原生端的通信方法。所述方法包括:确定在所述页面端产生的第一业务触发事件的第一功能调用信息;通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。

根据本申请实施例的第二方面,提供了一种页面端与原生端的通信方法。所述方法包括:接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息;对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息;调用所述第一功能调用信息指示的第一功能模块;将所述第一功能模块的功能执行结果回调至所述页面端。

根据本申请实施例的第三方面,提供了一种页面端与原生端的通信装置。所述装置包括:确定模块,用于确定在所述页面端产生的第一业务触发事件的第一功能调用信息;发送模块,用于通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。

根据本申请实施例的第四方面,提供了一种页面端与原生端的通信装置。所述装置包括:第一接收模块,用于接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息;第一解析模块,用于对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息;调用模块,用于调用所述第一功能调用信息指示的第一功能模块;第一回调模块,用于将所述第一功能模块的功能执行结果回调至所述页面端。

根据本申请实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面或第二方面所述的页面端与原生端的通信方法。

根据本申请实施例的第六方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面或第二方面所述的页面端与原生端的通信方法。

通过本申请实施例提供的技术方案,确定在页面端产生的第一业务触发事件的第一功能调用信息,并通过调用用于在页面弹出窗口的函数,向原生端发送携带有第一功能调用信息的功能调用消息,以在原生端中调用第一功能调用信息指示的第一功能模块,与现有的其它方式相比,通过调用用于在页面弹出窗口的函数在原生端中调用功能调用信息指示的功能模块,页面端与原生端的通信不受到原生端的版本或平台的限制,从而方便于页面端与原生端的通信。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本申请实施例一中页面端与原生端的通信方法的步骤流程图;

图2为本申请实施例二中页面端与原生端的通信方法的步骤流程图;

图3为本申请实施例三中页面端与原生端的通信方法的步骤流程图;

图4为本申请实施例四中页面端与原生端的通信方法的步骤流程图;

图5为本申请实施例五中页面端与原生端的通信装置的结构示意图;

图6为本申请实施例六中页面端与原生端的通信装置的结构示意图;

图7为本申请实施例七中页面端与原生端的通信装置的结构示意图;

图8为本申请实施例八中页面端与原生端的通信装置的结构示意图;

图9为本申请实施例九中电子设备的结构示意图;

图10为本申请实施例十中电子设备的硬件结构。

具体实施方式

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

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

参照图1,示出了本申请实施例一的页面端与原生端的通信方法的步骤流程图。

本实施例从页面端的角度,对本申请实施例提供的页面端与原生端的通信方法进行说明。具体地,本实施例的页面端与原生端的通信方法包括以下步骤:

在步骤s101中,确定在所述页面端产生的第一业务触发事件的第一功能调用信息。

在本申请实施例中,所述页面端可理解为采用javascript脚本语言开发应用程序的页面的脚本代码的统称,所述原生端可理解为采用objective-c语言开发的ios系统应用程序的原生代码的统称,或者采用java语言开发的android系统应用程序的原生代码的统称。在同一个应用程序中,可以存在部分功能由javascript脚本语言开发,部分功能由java语言或objective-c语言开发。因此,所述原生端和所述页面端可以存在于同一应用程序中。应用程序所在的android系统提供了原生端与页面端交互的接口,应用程序所在的ios系统也提供了原生端与页面端交互的接口。所述页面端与原生端的通信装置可以是页面端,也可以是浏览器应用,还可以是音视频播放器应用、即时通讯应用、购物应用,等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在本申请实施例中,所述第一业务触发事件可为用户点击特定按钮、打开本地某一文件夹、启用陀螺仪、启用气压感应、启用摄像头、启用麦克风等硬件、启用原生端打开某个页面,或者调用原生端的录音机功能进行录音等。所述第一功能调用信息包括以下中的至少一者:所述第一功能模块的名称、所述第一功能模块的参数、用于回调所述第一功能模块的功能执行结果的功能回调函数。其中,所述第一功能模块可为执行文件打开方法的功能模块、执行文件移动方法的功能模块、执行文件复制方法的功能模块、执行文件粘贴方法的功能模块、执行文件删除方法的功能模块等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在确定在所述页面端产生的第一业务触发事件的第一功能调用信息时,通过所述第一业务触发事件对应的业务函数,向所述页面端传入所述第一业务触发事件的第一功能调用信息,以确定在所述页面端产生的第一业务触发事件的第一功能调用信息。具体地,在第一业务触发事件的触发下,通过调用所述第一业务触发事件对应的业务函数,向所述页面端的预置函数传入所述第一业务触发事件的第一功能调用信息,从而确定在所述页面端产生的第一业务触发事件的第一功能调用信息。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤s102中,通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。

在本申请实施例中,所述用于在页面弹出窗口的函数包括弹窗函数,例如,页面端中采用javascript脚本语言开发的alert函数、confirm函数,或者prompt函数等。其中,alert函数用于在页面中弹出警告消息框。alert函数中有一个参数,即希望对用户显示的文本字符串。该字符串不是html格式。该消息框提供了一个“确定”按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说,用户必须先关闭该消息框然后才能继续进行操作。confirm函数用于在页面中弹出确认消息框。使用确认消息框可向用户问一个“是-或-否”问题,并且用户可以选择单击“确定”按钮或者单击“取消”按钮。confirm函数的返回值为true或false。该消息框也是模式对话框,用户必须在响应该对话框(单击一个按钮)将其关闭后,才能进行下一步操作。prompt函数用于在页面中弹出提示消息框。提示消息框提供了一个文本字段,用户可以在此字段输入一个答案来响应提示。该消息框有一个“确定”按钮和一个“取消”按钮。如果您提供了一个辅助字符串参数,则提示消息框将在文本字段显示该辅助字符串作为默认响应。否则,默认文本为"<undefined>"。与alert函数和confirm函数类似,prompt函数也将显示一个模式消息框,用户在继续操作之前必须先关闭该消息框。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息时,对所述第一功能调用信息进行结构化处理,以获得便于所述原生端解析出所述第一功能调用信息的结构化数据;生成携带有所述结构化数据的功能调用消息;通过调用所述用于在页面弹出窗口的函数,向所述原生端发送所述携带有所述结构化数据的功能调用消息。籍此,通过功能调用消息携带的结构化数据,能够方便于所述原生端解析出所述第一功能调用信息。当然,本申请实施例并不限于此,还可直接生成携带有所述第一功能调用信息的功能调用消息,再通过调用所述用于在页面弹出窗口的函数,向所述原生端发送所述携带有所述第一功能调用信息的功能调用消息,本申请实施例对此不做任何限定。

在一个具体的例子中,当所述结构化数据包括页面链接地址时,所述对所述第一功能调用信息进行结构化处理,包括:基于所述第一功能调用信息中的所述第一功能模块的名称和参数,生成页面链接地址。具体地,将协议字段中字符串、第一功能模块的名称的字符串及第一功能模块的参数的字符串进行拼凑,生成类似iframe标签的src字段的链接地址形式的页面链接地址,或者类似window.location.href的链接地址形式的页面链接地址,或者类似window.open的链接地址形式的页面链接地址,或者类似self.location.href的链接地址形式的页面链接地址。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,可将用于回调第一功能模块的功能执行结果的功能回调函数存储于容器中,并获得容器生成的所述功能回调函数的标识信息,再基于所述第一功能模块的名称和参数以及所述功能回调函数的标识信息,生成页面链接地址。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,当所述结构化数据包括携带所述第一功能调用信息的json数据时,所述对所述第一功能调用信息进行结构化处理,包括:基于所述第一功能调用信息中的所述第一功能模块的名称和参数,生成所述json数据。具体地,将所述第一功能调用信息中的所述第一功能模块的名称存储于所述json数据中的方法字段,并将所述第一功能调用信息中的所述第一功能模块的参数存储于所述json数据中的参数字段,从而生成携带所述第一功能调用信息的所述json数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,所述原生端对接收到的所述功能调用消息进行解析,以获得所述功能调用消息携带的所述第一功能调用信息,再调用所述第一功能调用信息指示的第一功能模块。籍此,页面端通过功能调用消息,将第一业务触发事件的第一功能调用信息传入到原生端中,而不受限于原生端的版本或平台的限制,从而方便于页面端与原生端的通信。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述方法还包括:接收所述原生端传回的所述第一功能模块的功能执行结果;通过所述第一业务触发事件的功能回调函数,将接收到的所述功能执行结果回调至所述第一业务触发事件对应的业务函数。籍此,通过第一业务触发事件的功能回调函数回调接收到的功能执行结果,页面端产生的第一业务触发事件的业务函数便可获得相应的功能执行结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,页面端接收所述原生端通过脚本代码注入的方式传回的所述第一功能模块的功能执行结果。页面端通过执行所述第一业务触发事件的功能回调函数的回调功能,回调接收到的所述功能执行结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述方法还包括:接收所述原生端传入的第二业务触发事件的第二功能调用信息;调用所述第二功能调用信息指示的第二功能模块;将所述第二功能模块的功能执行结果回调至所述原生端。籍此,通过原生端传入的业务触发事件的功能调用信息,能够在页面端调用功能调用信息指示的功能模块,并获得相应的功能执行结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在接收所述原生端传入的第二业务触发事件的第二功能调用信息时,所述页面端接收所述原生端通过脚本代码注入的方式传入的第二业务触发事件的第二功能调用信息。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在调用所述第二功能调用信息指示的第二功能模块时,通过脚本代码中用于计算字符串并执行所述字符串对应的脚本代码的函数,调用所述第二功能调用信息指示的第二功能模块。其中,用于计算字符串并执行所述字符串对应的脚本代码的函数可为javascript脚本语言中的eval()函数。通过eval()函数调用所述第二功能调用信息指示的第二功能模块,使用更灵活。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在将所述第二功能模块的功能执行结果回调至所述原生端时,通过调用所述用于在页面弹出窗口的函数,向所述原生端发送携带有所述第二功能模块的功能执行结果的结果回调消息,以将所述第二功能模块的功能执行结果回调至所述原生端。籍此,通过调用用于在页面弹出窗口的函数,能够将功能模块的功能执行结果回调至原生端。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第二功能模块的功能执行结果的结果回调消息时,对所述第二功能模块的功能执行结果进行结构化处理,以获得便于所述原生端解析出所述第二功能模块的功能执行结果的结构化数据;生成携带有所述结构化数据的结果回调消息;通过调用所述用于在页面弹出窗口的函数,向所述原生端发送所述携带有所述结构化数据的结果回调消息。籍此,通过结果回调消息携带的结构化数据,能够方便于所述原生端解析出所述第二功能模块的功能执行结果。当然,本申请实施例并不限于此,还可直接生成携带有所述第二功能模块的功能执行结果的结果回调消息,再通过调用所述用于在页面弹出窗口的函数,向所述原生端发送所述携带有所述第二功能模块的功能执行结果的结果回调消息,本申请实施例对此不做任何限定。

在一个具体的例子中,当所述结构化数据包括页面链接地址时,所述对所述第二功能模块的功能执行结果进行结构化处理,包括:基于所述第二功能模块的功能执行结果,生成页面链接地址。具体地,将协议字段中的字符串和所述第二功能模块的功能执行结果的字符串进行拼凑,生成类似iframe标签的src字段的链接地址形式的页面链接地址,或者类似window.location.href的链接地址形式的页面链接地址,或者类似window.open的链接地址形式的页面链接地址,或者类似self.location.href的链接地址形式的页面链接地址。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,当所述结构化数据包括携带所述第二功能模块的功能执行结果的json数据时,所述对所述第二功能模块的功能执行结果进行结构化处理,包括:基于所述第二功能模块的功能执行结果,生成所述json数据。具体地,将所述第二功能模块的功能执行结果存储于所述json数据中的功能执行结果字段,从而生成携带所述第二功能模块的功能执行结果的所述json数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

通过本申请实施例提供的页面端与原生端的通信方法,确定在页面端产生的第一业务触发事件的第一功能调用信息,并通过调用用于在页面弹出窗口的函数,向原生端发送携带有第一功能调用信息的功能调用消息,以在原生端中调用第一功能调用信息指示的第一功能模块,与现有的其它方式相比,通过调用用于在页面弹出窗口的函数在原生端中调用功能调用信息指示的功能模块,页面端与原生端的通信不受到原生端的版本或平台的限制,从而方便于页面端与原生端的通信。

本实施例的页面端与原生端的通信方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、pc机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(pda)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如googleglass、oculusrift、hololens、gearvr)等。

参照图2,示出了本申请实施例二的页面端与原生端的通信方法的步骤流程图。

本实施例从原生端的角度,对本申请实施例提供的页面端与原生端的通信方法进行说明。具体地,本实施例的页面端与原生端的通信方法包括以下步骤:

在步骤s201中,接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息。

在本申请实施例中,所述用于在页面弹出窗口的函数包括弹窗函数。当所述页面端通过调用所述弹窗函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息时,所述原生端采用对应的原生方法接收所述页面端发送的功能调用消息。例如,当所述页面端通过调用alert函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息时,所述原生端采用关于alert函数的原生方法接收所述页面端发送的功能调用消息。当所述页面端通过调用confirm函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息时,所述原生端采用关于confirm函数的原生方法接收所述页面端发送的功能调用消息。当所述页面端通过调用prompt函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息时,所述原生端采用关于prompt函数的原生方法接收所述页面端发送的功能调用消息。由此可见,页面端的弹窗函数的调用由应用程序所在的系统(例如,android系统,或者ios系统)执行到原生端对应的原生方法。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤s202中,对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息。

在本申请实施例中,当所述功能调用消息直接携带所述第一功能调用信息时,所述原生端直接对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息。当所述功能调用消息携带页面链接地址时,所述原生端按照预设规则对所述页面链接地址进行解析,以获得所述功能调用消息携带的第一功能调用信息。其中,所述预设规则可包括scheme协议规则。具体地,scheme协议定义页面链接地址的内容开头为jsbridge://,则页面链接地址内容的开头是jsbridge://的页面链接地址会被解析,如果定义为abs://也可以,只要页面端和原生端协商好链接地址的内容开头即可。换句话说,如果检测到所述功能调用消息携带的页面链接地址的内容开头满足scheme协议规定的链接地址的内容开头,则所述页面链接地址会被解析。在检测到所述功能调用消息携带的页面链接地址满足预设规则之后,所述原生端对所述功能调用消息携带的页面链接地址的内容进行解析,以获得所述功能调用消息携带的第一功能调用信息。当所述功能调用消息携带json数据时,所述原生端按照json数据中的字段对json数据进行解析,以获得所述功能调用消息携带的第一功能调用信息。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤s203中,调用所述第一功能调用信息指示的第一功能模块。

在一些可选实施例中,在调用所述第一功能调用信息指示的第一功能模块时,反射调用所述第一功能调用信息指示的第一功能模块。籍此,通过反射调用功能调用信息指示的功能模块,使用更灵活。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤s204中,将所述第一功能模块的功能执行结果回调至所述页面端。

在一些可选实施例中,在将所述第一功能模块的功能执行结果回调至所述页面端时,通过脚本代码注入的方式,将所述第一功能模块的功能执行结果传入所述页面端。其中,脚本代码注入的方式可理解为原生端调用页面端中的功能模块通过加载一段脚本代码的方式,加载一段脚本代码,比如,loadurl("javascript:abs()")调用功能模块名称为abs的功能模块。籍此,可通过脚本代码注入的方式,将功能模块的功能执行结果传入页面端。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述方法还包括:接收所述页面端通过调用所述用于在页面弹出窗口的函数发送的结果回调消息;对所述结果回调消息进行解析,以获得所述结果回调消息携带的第二功能模块的功能执行结果;通过所述第二功能模块对应的业务触发事件的功能回调接口,将接收到的所述功能执行结果回调至所述业务触发事件对应的业务方法。其中,接收所述页面端通过调用所述用于在页面弹出窗口的函数发送的结果回调消息的具体实施方式与上述接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息的具体实施方式类似,在此不再赘述。对所述结果回调消息进行解析的具体实施方式与上述对所述功能调用消息进行解析的具体实施方式类似,在此不再赘述。籍此,通过第二功能模块对应的业务触发事件的功能回调接口回调接收到的功能执行结果,原生端产生的业务触发事件对应的业务方法便可获得相应的功能执行结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,原生端通过执行所述第二功能模块对应的业务触发事件的功能回调接口的功能,回调接收到的所述第二功能模块的功能执行结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

通过本申请实施例提供的页面端与原生端的通信方法,接收页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息,并对功能调用消息进行解析,以获得功能调用消息携带的第一功能调用信息,再调用第一功能调用信息指示的第一功能模块,再将第一功能模块的功能执行结果回调至页面端,与现有的其它方式相比,通过调用用于在页面弹出窗口的函数在原生端中调用功能调用信息指示的功能模块,页面端与原生端的通信不受到原生端的版本或平台的限制,从而方便于页面端与原生端的通信。

本实施例的页面端与原生端的通信方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、pc机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(pda)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如googleglass、oculusrift、hololens、gearvr)等。

参照图3,示出了本申请实施例三的页面端与原生端的通信方法的步骤流程图。

本实施例从页面端与原生端交互的角度,对本申请实施例提供的页面端与原生端的通信方法进行说明。具体地,本实施例的页面端与原生端的通信方法包括以下步骤:

在步骤s301中,确定在所述页面端产生的第一业务触发事件的第一功能调用信息。

由于该步骤s301的具体实施方式与上述步骤s101的具体实施方式类似,在此不再赘述。

在步骤s302中,通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。

由于该步骤s302的具体实施方式与上述步骤s102的具体实施方式类似,在此不再赘述。

在步骤s303中,接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息。

由于该步骤s303的具体实施方式与上述步骤s201的具体实施方式类似,在此不再赘述。

在步骤s304中,对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息。

由于该步骤s304的具体实施方式与上述步骤s202的具体实施方式类似,在此不再赘述。

在步骤s305中,调用所述第一功能调用信息指示的第一功能模块。

由于该步骤s305的具体实施方式与上述步骤s203的具体实施方式类似,在此不再赘述。

在步骤s306中,将所述第一功能模块的功能执行结果回调至所述页面端。

由于该步骤s306的具体实施方式与上述步骤s204的具体实施方式类似,在此不再赘述。

通过本申请实施例提供的页面端与原生端的通信方法,页面端确定在页面端产生的第一业务触发事件的第一功能调用信息,并通过调用用于在页面弹出窗口的函数,向原生端发送携带有第一功能调用信息的功能调用消息,以在原生端中调用第一功能调用信息指示的第一功能模块;原生端接收页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息,并对功能调用消息进行解析,以获得功能调用消息携带的第一功能调用信息,再调用第一功能调用信息指示的第一功能模块,再将第一功能模块的功能执行结果回调至页面端,与现有的其它方式相比,通过调用用于在页面弹出窗口的函数在原生端中调用功能调用信息指示的功能模块,页面端与原生端的通信不受到原生端的版本或平台的限制,从而方便于页面端与原生端的通信。

本实施例的页面端与原生端的通信方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、pc机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(pda)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如googleglass、oculusrift、hololens、gearvr)等。

参照图4,示出了本申请实施例四的页面端与原生端的通信方法的步骤流程图。

本实施例从页面端与原生端交互的角度,对本申请实施例提供的页面端与原生端的通信方法进行说明。具体地,本实施例的页面端与原生端的通信方法包括以下步骤:

在步骤s401中,确定在所述原生端产生的第二业务触发事件的第二功能调用信息。

在本申请实施例中,所述第二业务触发事件可为用户在原生页面中的点击操作、调用页面端中已经存在的功能、原生页面需要通知h5页面某个控件需要更新样式,或原生页面让h5页面进行部分内容刷新等。所述第二功能调用信息包括以下中的至少一者:所述第二功能模块的名称、所述第二功能模块的参数、用于回调所述第二功能模块的功能执行结果的功能回调接口。其中,所述第二功能模块可为获取h5页面信息的功能模块等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在确定在所述原生端产生的第二业务触发事件的第二功能调用信息时,通过所述第二业务触发事件对应的业务方法,向所述原生端传入所述第二业务触发事件的第二功能调用信息,以确定在所述原生端产生的第二业务触发事件的第二功能调用信息。具体地,在第二业务触发事件的触发下,通过调用所述第二业务触发事件对应的业务方法,向所述页面端的预置函数传入所述第二业务触发事件的第二功能调用信息,从而确定在所述原生端产生的第二业务触发事件的第二功能调用信息。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤s402中,将所述第二功能调用信息传入所述页面端,以在所述页面端中调用所述第二功能调用信息指示的第二功能模块。

在一些可选实施例中,在将所述第二功能调用信息传入所述页面端时,通过脚本代码注入的方式,将所述第二功能调用信息传入所述页面端。籍此,原生端通过脚本代码注入的方式,将第二业务触发事件的第二功能调用信息传入到页面端中,而不受限于原生端的版本或平台的限制,从而方便于页面端与原生端的通信。其中,所述脚本代码注入的方式与上文描述类似,在此不再赘述。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤s403中,接收所述原生端传入的第二业务触发事件的第二功能调用信息。

由于该步骤s403的具体实施方式与上文描述的具体实施方式类似,在此不再赘述。

在步骤s404中,调用所述第二功能调用信息指示的第二功能模块。

由于该步骤s404的具体实施方式与上文描述的具体实施方式类似,在此不再赘述。

在步骤s405中,将所述第二功能模块的功能执行结果回调至所述原生端。

由于该步骤s405的具体实施方式与上文描述的具体实施方式类似,在此不再赘述。

通过本申请实施例提供的页面端与原生端的通信方法,原生端确定在原生端产生的第二业务触发事件的第二功能调用信息,并将第二功能调用信息传入页面端,以在页面端中调用第二功能调用信息指示的第二功能模块,页面端接收原生端传入的第二业务触发事件的第二功能调用信息,并调用第二功能调用信息指示的第二功能模块,再将第二功能模块的功能执行结果回调至原生端,与现有的其它方式相比,在页面端中调用功能调用信息指示的功能模块,页面端与原生端的通信不受到原生端的版本或平台的限制,从而方便于页面端与原生端的通信。

本实施例的页面端与原生端的通信方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、pc机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(pda)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如googleglass、oculusrift、hololens、gearvr)等。

参照图5,示出了本申请实施例五中页面端与原生端的通信装置的结构示意图。

本实施例的页面端与原生端的通信装置包括:确定模块501,用于确定在所述页面端产生的第一业务触发事件的第一功能调用信息;发送模块502,用于通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。

本实施例的页面端与原生端的通信装置用于实现前述多个方法实施例中相应的页面端与原生端的通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图6,示出了本申请实施例六中页面端与原生端的通信装置的结构示意图。

本实施例的页面端与原生端的通信装置包括:确定模块604,用于确定在所述页面端产生的第一业务触发事件的第一功能调用信息;发送模块605,用于通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。

可选地,所述确定模块604,包括:传入模块6041,用于通过所述第一业务触发事件对应的业务函数,向所述页面端传入所述第一业务触发事件的第一功能调用信息,以确定在所述页面端产生的第一业务触发事件的第一功能调用信息。

可选地,所述装置还包括:第一接收模块606,用于接收所述原生端传回的所述第一功能模块的功能执行结果;第一回调模块607,用于通过所述第一业务触发事件的功能回调函数,将接收到的所述功能执行结果回调至所述第一业务触发事件对应的业务函数。

可选地,所述装置还包括:第二接收模块601,用于接收所述原生端传入的第二业务触发事件的第二功能调用信息;调用模块602,用于调用所述第二功能调用信息指示的第二功能模块;第二回调模块603,用于将所述第二功能模块的功能执行结果回调至所述原生端。

可选地,所述调用模块602,具体用于:通过脚本代码中用于计算字符串并执行所述字符串对应的脚本代码的函数,调用所述第二功能调用信息指示的第二功能模块。

可选地,所述第二回调模块603,具体用于:通过调用所述用于在页面弹出窗口的函数,向所述原生端发送携带有所述第二功能模块的功能执行结果的结果回调消息,以将所述第二功能模块的功能执行结果回调至所述原生端。

可选地,所述用于在页面弹出窗口的函数包括弹窗函数。

可选地,所述第一功能调用信息包括以下中的至少一者:所述第一功能模块的名称、所述第一功能模块的参数、用于回调所述第一功能模块的功能执行结果的功能回调函数。

本实施例的页面端与原生端的通信装置用于实现前述多个方法实施例中相应的页面端与原生端的通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图7,示出了本申请实施例七中页面端与原生端的通信装置的结构示意图。

本实施例的页面端与原生端的通信装置包括:第一接收模块701,用于接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息;第一解析模块702,用于对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息;调用模块703,用于调用所述第一功能调用信息指示的第一功能模块;第一回调模块704,用于将所述第一功能模块的功能执行结果回调至所述页面端。

本实施例的页面端与原生端的通信装置用于实现前述多个方法实施例中相应的页面端与原生端的通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图8,示出了本申请实施例八中页面端与原生端的通信装置的结构示意图。

本实施例的页面端与原生端的通信装置包括:第一接收模块801,用于接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息;第一解析模块802,用于对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息;调用模块803,用于调用所述第一功能调用信息指示的第一功能模块;第一回调模块804,用于将所述第一功能模块的功能执行结果回调至所述页面端。

可选地,所述调用模块803,具体用于:反射调用所述第一功能调用信息指示的第一功能模块。

可选地,所述第一回调模块804,具体用于:通过脚本代码注入的方式,将所述第一功能模块的功能执行结果传入所述页面端。

可选地,所述装置还包括:第二接收模块805,用于接收所述页面端通过调用所述用于在页面弹出窗口的函数发送的结果回调消息;第二解析模块806,用于对所述结果回调消息进行解析,以获得所述结果回调消息携带的第二功能模块的功能执行结果;第二回调模块807,用于通过所述第二功能模块对应的业务触发事件的功能回调接口,将接收到的所述功能执行结果回调至所述业务触发事件对应的业务方法。

本实施例的页面端与原生端的通信装置用于实现前述多个方法实施例中相应的页面端与原生端的通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。

图9为本申请实施例九中电子设备的结构示意图;该电子设备可以包括:

一个或多个处理器901;

计算机可读介质902,可以配置为存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一、实施例二、实施例三或实施例四所述的页面端与原生端的通信方法。

图10为本申请实施例十中电子设备的硬件结构;如图10所示,该电子设备的硬件结构可以包括:处理器1001,通信接口1002,计算机可读介质1003和通信总线1004;

其中处理器1001、通信接口1002、计算机可读介质1003通过通信总线1004完成相互间的通信;

可选地,通信接口1002可以为通信模块的接口,如gsm模块的接口;

其中,处理器1001具体可以配置为:确定在所述页面端产生的第一业务触发事件的第一功能调用信息;通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。此外,还可以配置为:接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息;对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息;调用所述第一功能调用信息指示的第一功能模块;将所述第一功能模块的功能执行结果回调至所述页面端。

处理器1001可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

计算机可读介质1003可以是,但不限于,随机存取存储介质(randomaccessmemory,ram),只读存储介质(readonlymemory,rom),可编程只读存储介质(programmableread-onlymemory,prom),可擦除只读存储介质(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储介质(electricerasableprogrammableread-onlymemory,eeprom)等。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(ram)、只读存储介质(rom)、可擦式可编程只读存储介质(eprom或闪存)、光纤、便携式紧凑磁盘只读存储介质(cd-rom)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块、发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,确定模块还可以被描述为“确定在所述页面端产生的第一业务触发事件的第一功能调用信息的模块”。

作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一、实施例二、实施例三或实施例四所描述的页面端与原生端的通信方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:确定在所述页面端产生的第一业务触发事件的第一功能调用信息;通过调用用于在页面弹出窗口的函数,向所述原生端发送携带有所述第一功能调用信息的功能调用消息,以在所述原生端中调用所述第一功能调用信息指示的第一功能模块。此外,还使得该装置:接收所述页面端通过调用用于在页面弹出窗口的函数发送的功能调用消息;对所述功能调用消息进行解析,以获得所述功能调用消息携带的第一功能调用信息;调用所述第一功能调用信息指示的第一功能模块;将所述第一功能模块的功能执行结果回调至所述页面端。

在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。

当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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