CN107623704B - 终端设备中的数据交互方法、客户端及浏览器 - Google Patents

终端设备中的数据交互方法、客户端及浏览器 Download PDF

Info

Publication number
CN107623704B
CN107623704B CN201610555151.2A CN201610555151A CN107623704B CN 107623704 B CN107623704 B CN 107623704B CN 201610555151 A CN201610555151 A CN 201610555151A CN 107623704 B CN107623704 B CN 107623704B
Authority
CN
China
Prior art keywords
communication module
application program
module
communication
data
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
Application number
CN201610555151.2A
Other languages
English (en)
Other versions
CN107623704A (zh
Inventor
赵月芳
李兴刚
王拥军
陈恕胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN201610555151.2A priority Critical patent/CN107623704B/zh
Publication of CN107623704A publication Critical patent/CN107623704A/zh
Application granted granted Critical
Publication of CN107623704B publication Critical patent/CN107623704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种终端设备中的数据交互方法,所述终端设备包括操作系统客户端和前端浏览器,该方法包括:在所述操作系统客户端的网络视图(WebView)组件中注入基于JavaScript的通信模块,并在所述WebView组件中配置面向所述操作系统客户端中应用程序模块的接口;所述通信模块建立与所述前端浏览器之间的基于JavaScript的通信桥;所述通信模块通过所述通信桥和所述接口在所述前端浏览器和所述应用程序模块之间传递数据。相应的,本申请还提出了一种操作系统客户端和前端浏览器。采用上述方案能够降低通信成本、提高效率。

Description

终端设备中的数据交互方法、客户端及浏览器
技术领域
本申请涉及互联网技术领域,尤其涉及终端设备中的数据交互方法、客户端及浏览器。
背景技术
终端设备通常要通过前端浏览器来访问互联网中的Web服务器。目前,主流的前端浏览器包括:IE,Firefox、Chrome、Safari、Opera等。前端浏览器提供用户界面(UI),并响应于用户对于UI的操作而执行相应的处理,比如:下载/打开指定URL对应的文件、参与投票活动等等。在执行这些处理时,前端浏览器和终端设备的操作系统客户端可能需要互相传递数据。
然而,终端设备可能基于不同的操作系统(诸如安卓、iOS等),因此,在前端浏览器在的开发中需要考虑其与操作系统客户端兼容的问题。目前业界的一种解决办法是在网络侧设置专门的服务器数据中心,操作系统客户端和前端浏览器通过次服务器数据中心来相互传递数据,这样必然会占用带宽、提高了通信成本、也使得效率低下。
发明内容
本申请提供了一种终端设备中的数据交互方法,所述终端设备包括操作系统客户端和前端浏览器,该方法包括:在所述操作系统客户端的网络视图(WebView)组件中注入基于JavaScript的通信模块,并在所述WebView组件中配置面向所述操作系统客户端中应用程序模块的接口;所述通信模块建立与所述前端浏览器之间的基于JavaScript的通信桥;所述通信模块通过所述通信桥和所述接口在所述前端浏览器和所述应用程序模块之间传递数据。
本申请还提出了一种终端设备中的数据交互方法,所述终端设备包括操作系统客户端和前端浏览器,所述操作系统客户端的WebView组件中,注入了基于JavaScript的通信模块并配置有面向所述操作系统客户端中应用程序模块的接口;该方法包括:所述前端浏览器建立与所述通信模块之间的基于JavaScript的通信桥;所述前端浏览器响应于用户操作而确定所述应用程序模块和所述前端浏览器之间需要传递的数据;所述前端浏览器通过所述通信桥与所述通信模块传递所述数据,其中,所述通信模块通过所述接口与所述应用程序模块传递所述数据。
本申请提出了一种操作系统客户端,包括:WebView组件和应用程序模块;其中,所述WebView组件包括:基于JavaScript的通信模块和面向所述应用程序模块的接口;其中,所述通信模块,建立与前端浏览器之间的基于JavaScript的通信桥,并通过所述通信桥和所述接口在所述前端浏览器和所述应用程序模块之间传递数据。
本申请提出了一种前端浏览器,其与操作系统客户端交互数据,其中,所述操作系统客户端的WebView组件中,注入了基于JavaScript的第一通信模块并配置有面向所述操作系统客户端中应用程序模块的接口;所述前端浏览器包括:第二通信模块,建立与所述第一通信模块之间的基于JavaScript的通信桥;用户界面模块,响应于用户操作而确定所述应用程序模块和所述前端浏览器之间需要传递的数据;所述第二通信模块,通过所述通信桥与所述第一通信模块传递所述用户界面模块确定的所述数据,其中,所述第一通信模块通过所述接口与所述应用程序模块传递所述数据。
采用本申请所提供的上述方法、客户端及浏览器,通过JavaScript代码注入WebView组件的方式实现了前端浏览器和操作系统客户端之间的数据交互,而不必通过网络侧的服务器数据中心来传递数据,进而能够提高系统处理效率、并降低了通信成本。
附图说明
为了更清楚的说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中,
图1为本申请一实例中的方法流程示意图;
图2为本申请一实例中的方法流程示意图;
图3为本申请一实例中的数据交互示意图;
图4为本申请一实例中的装置组成结构图;
图5为本申请一实例中的装置组成结构图;
图6为本申请一实例中的计算设备组成结构示意图;及
图7为本申请一实例中的计算设备组成结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实例是本申请一部分实例,而不是全部的实例。基于本申请中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。
本申请一实例提出了一种终端设备中的数据交互方法,所述终端设备包括操作系统客户端和前端浏览器,该方法应用于操作系统客户端(如安卓、iOS等客户端)。
如图1所示,该方法包括如下步骤:
步骤101:在操作系统客户端的网络视图(WebView)组件中注入基于JavaScript的通信模块,并在WebView组件中配置面向操作系统客户端中应用程序模块的接口。
其中,WebView组件为操作系统客户端内置的能够展示网页的内核浏览器组件。
其中,JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的,其具有如下特点:
1、是一种解释性脚本语言(代码不进行预编译)。
2、主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
3、可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
4、跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
其中,上述应用程序模块包括操作系统客户端中安装的一个或多个应用程序,通过上述WebView组件中配置的面向应用程序模块的接口可以访问到应用程序模块中的指定应用程序,进而可以运行该应用程序以执行相应的操作或者读取所需的数据。
在一些实例中,在WebView组件中配置的接口可以包括与指定的一个或多个应用程序对应的一个或多个接口函数,通过调用一接口函数,可以调用对应的应用程序以运行该应用程序,或者可以调用对应的应用程序以获取到所需的数据。
步骤102:通信模块建立与前端浏览器之间的基于JavaScript的通信桥。
在一些实例中,通信模块中定义了相关数据传输的方法名称和参数,通信模块和前端浏览器可利用JavaScript的方法并按照操作系统客户端的协议对通信模块中定义的方法进行初始化,进而搭建起二者之间的通信桥。
步骤103:通信模块通过此通信桥和上述接口在前端浏览器和上述应用程序模块之间传递数据。这里,所传递的数据可以为依据当前用户操作而确定的前端浏览器所需的数据或者所述操作系统客户端所需的数据。
在一些实例中,当需要从前端浏览器向应用程序模块传递数据时,上述通信模块通过通信桥和接口在前端浏览器和应用程序模块之间传递数据的处理,可以包括:通过通信桥接收来自前端浏览器的数据,再通过接口将接收到的数据传递给应用程序模块。这样,应用程序模块可以基于此数据运行相应的应用程序来完成相应的操作。
在一些实例中,当需要从应用程序模块向前端浏览器传递数据时,上述通信模块通过通信桥和接口在前端浏览器和应用程序模块之间传递数据的处理,可以包括:通过通信桥接收来自前端浏览器的获取指定数据的请求,响应于接收到的上述请求,通过上述接口从上述应用程序模块获取此数据,再通过通信桥将所获取的此数据返回给前端浏览器。这样,前端浏览器可以基于此数据完成相应的操作。比如,当前端浏览器需要从操作系统客户端获取用户的登录信息时,通信模块可以通过上述接口从登录模块程序获取所需要的用户登录信息(例如:用户QQ、用户昵称等数据),通信模块获取到用户登录信息之后可通过调用回调函数来给前端浏览器传送此用户登录信息。
在上述实例中通过JavaScript代码注入WebView组件的方式实现了前端浏览器和操作系统客户端之间的数据交互,而不必通过网络侧的服务器来传递数据,进而能够提高系统处理效率、并降低了通信成本。具体的,由于不依赖服务器数据中心来传递数据,能够达到一次请求数据多次共享资源的目的,减少了请求接口次数,减少的带宽占用,进而提高了浏览器的页面加载速度,不仅显著提高系统处理资源的利用率,还提高了用户体验,也显著降低了实现成本。本方案的实施,能够跨平台兼容iOS和安卓平台,实现前端浏览器与操作系统客户端的混合式开发,二者可以不依赖服务器数据中心来交互数据,因此,当用户比较多时,不需要增加较多的服务器来支持操作系统客户端与前端浏览器之间的数据交互,从而降低了二者之间传输数据的成本和通讯负担。
本申请一实例提出了一种终端设备中的数据交互方法,所述终端设备包括操作系统客户端和前端浏览器,所述操作系统客户端的WebView组件中,注入了基于JavaScript的通信模块并配置有面向此操作系统客户端中应用程序模块的接口,该方法可应用于前端浏览器,此前端浏览器可以指独立的浏览器应用程序,也可以指某些应用程序中内置的浏览器组件。
如图2所示,该方法包括如下步骤:
步骤201:前端浏览器建立与上述通信模块之间的基于JavaScript的通信桥。
步骤202:前端浏览器响应于用户操作而确定应用程序模块和前端浏览器之间需要传递的数据。
在一些实例中,前端浏览器需要从本地的操作系统客户端获取某应用程序的相关参数(比如:在用户在参与投票活动、做用户行为统计、关注股票数据等时前端浏览器可以确定自身需要从操作系统客户端获取某应用程序的用户登录信息等跟用户个人有关的特定数据)。在另一些实例中,本地的操作系统客户端则需要从前端浏览器获取相关参数(比如:在用户打开具有某URL的文档时前端浏览器确定操作系统客户端调用的文档处理应用程序需要从前端浏览器获取URL数据)。
步骤203:前端浏览器通过通信桥与通信模块传递步骤202确定的需要传递的数据,其中,通信模块会通过接口与应用程序模块传递此数据。
在一些实例中,上述方法可进一步包括以下步骤:
步骤204:前端浏览器监听来自通信模块的参数以确定通信桥是否准备好。
在一些实例中,通信模块在初始化成功、可以进行数据传输时会输出指示已准备好的参数,前端浏览器如果能够监听到此参数,则可以判定通信桥已准备好。
步骤205:在确定通信桥已准备好之后,前端浏览器再执行上述步骤203。在通信桥未准备好时执行步骤204以继续监听。
在一些实例中,前端浏览器确定需要自身向应用程序模块传递数据,此时,上述步骤203可包括:前端浏览器将当前确定的应用程序模块所需的数据通过通信桥传递给通信模块,以使通信模块通过接口将当前收到的数据传递给应用程序模块。
在一些实例中,步骤203中,前端浏览器通过调用自身的回调函数来将当前确定的应用程序模块所需的数据传递给通信模块,并获取通信模块在传递此数据给应用程序模块之后返回的执行状态。这里,通信模块可通过调用自身的回调函数来返回执行状态。这样,前端浏览器基于此执行状态可以确定数据是否成功传递到应用程序模块。其中,前端浏览器中的回调函数中定义了与通信模块相应的数据传输的方法名称和参数,前端浏览器中的用户接口在收到用户操作之后确定需要传递的数据,在步骤205中确定通信桥已准备好之后调用此回调函数,进而可通过回调函数来传递上述数据。
在一些实例中,前端浏览器确定需要从应用程序模块向自身传递数据(即确定自身需要从应用程序模块获取数据),上述步骤203可包括:前端浏览器通过通信桥向通信模块发出从应用程序模块获取所须得数据的请求,以使通信模块响应于接收到的该请求通过接口从应用程序模块获取此数据,并通过通信桥将获取的此数据传递给前端浏览器。
在一些实例中,步骤203中,前端浏览器通过调用自身的回调函数来将上述请求传递给通信模块,并获取通信模块在从应用程序模块获取到数据之后返回的上述数据。这里,通信模块可以通过调用自身的回调函数来向前端浏览器返回所获取的数据。其中,回调函数中定义了与通信模块相应的数据传输的方法名称和参数,前端浏览器中的用户接口在收到用户操作之后确定需要获取的数据,在步骤205中确定通信桥已准备好之后调用此回调函数,进而可通过回调函数来传递请求并获取上述数据。
图3示出了本申请一实例中的数据交互过程。如图3所示,该过程包括以下步骤:
步骤301~302:操作系统客户端的WebView组件中注入的通信模块与前端浏览器的通信模块完成初始化过程并建立通信桥(本实例中命名为StockJSBridge)。前端浏览器监听来自通信模块的参数以确定StockJSBridge是否准备好,并当StockJSBridge准备好时通知用户界面模块。
步骤303~305:前端浏览器的用户界面模块接收到用户操作1,并且确定StockJSBridge准备好时,基于用户操作1确定需要传递参数给操作系统客户端中的应用程序1,则调用对应的回调函数1来向通信模块传递应用程序1所需的参数。
步骤306:通信模块调用对应的接口1将参数传递给应用程序模块中的应用程序1,使得应用程序1可以利用此参数执行相应的参数。之后,通信模块可调用自身的回调函数返回执行状态给前端浏览器的通信模块。
比如:用户操作1指示打开一PDF文件,则需要将PDF文件的URL信息传递给操作系统客户端中能够处理PDF文档的应用程序1,则调用回调函数1来将打开PDF文件所需的参数传递给通信模块,通信模块再通过接口1来调用应用程序1并将参数传递给应用程序1,进而应用程序1可以打开该PDF文件。
步骤307~309:前端浏览器的用户界面模块接收到用户操作2,并且确定StockJSBridge准备好时,基于用户操作2确定需要从操作系统客户端中的应用程序2获取参数来执行相应操作,则调用对应的回调函数2来向通信模块传递从应用程序2获取所需参数的请求。
步骤310:通信模块调用对应的接口2将获取参数的请求传递给应用程序模块中的应用程序2,使得应用程序2可以基于此请求返回相应的参数给通信模块。之后,通信模块还可调用自身的回调函数向前端浏览器的通信模块返回来自应用程序2的参数
比如:用户操作2指示参与投票活动,则前端浏览器需要用户的登录信息来完成此操作,则需要从操作系统客户端中提供对应用户登录信息的应用程序2获取用户登录信息,则调用回调函数2来将获取用户登录信息的请求传递给通信模块,通信模块再通过接口2来调用应用程序2以将该请求传递给应用程序2,进而应用程序2可以将用户登录信息返回给通信模块,再由通信模块返回用户登录信息给前端浏览器,这样前端浏览器可利用此用户登录信息完成操作。
在一实例中,操作系统客户端的WebView组件内置JS对象StockJSBridge并定义相关的传输数据方法。
例如,前端浏览器需要用户登录信息,则在操作系统客户端需要定义用来搭建通信桥并进行前端浏览器和操作系统客户端之间数据传输的StockJSBridge函数,将此函数放在window对象之下,这样,此函数可作为全局函数,按照前端浏览器的协议还需要定义‘openPdfFile’方法(请求操作系统客户端打开一个PDF文档),操作系统客户端注入的JavaScript代码如下所示:
Figure BDA0001049418330000091
Figure BDA0001049418330000101
前端浏览器中还需监听StockJSBridge对象并定义相关传输数据方法,其中,要定义监听StockJSBridge的方法,当StockJSBridge准备好时执行回调函数setUrlData来给操作系统客户端传送打开的PDF文档所需的参数。此监听方法的JavaScript代码如下所示:
Figure BDA0001049418330000102
前端浏览器监听StockJSBridge准备好之后调用的回调函数的JavaScript代码如下。其中,articleId是文章id,url是想要打开的PDF链接,title是新闻题目,time是新闻时间戳。
Figure BDA0001049418330000111
这样,前端浏览器通过调用此回调函数能够通过StockJSBridge函数定义的数据传输方法将操作系统客户端需要的相关参数传递给操作系统客户端,进而,操作系统客户端能够根据这些参数执行相应的操作(即本地下载所给的PDF链接并打开此PDF文档)。
基于上述各种方法实例,本申请还提出了一种操作系统客户端,如图4所示,包括:WebView组件401和应用程序模块402。WebView组件401包括:基于JavaScript的通信模块411(即第一通信模块)和面向应用程序模块402的接口412。通信模块411建立与前端浏览器之间的基于JavaScript的通信桥,并通过通信桥和接口412在前端浏览器和应用程序模块402之间传递数据。这里,应用程序模块可包括多个应用程序,WebView组件中可以包括多个对应于不同应用程序的接口,根据当前数据传递的需要通信模块可调用对应的接口来跟对应的应用程序传递数据。
在一些实例中,当需要从前端浏览器向应用程序模块402传递数据时,通信模块411通过通信桥接收来自前端浏览器的数据,通过接口412将接收到的数据传递给应用程序模块402。进一步的,通信模块411可调用自身的回调函数来通过通信桥向前端浏览器返回执行状态。
在一些实例中,当需要从应用程序模块402向前端浏览器传递数据时,通信模块411通过通信桥接收来自前端浏览器的获取数据的请求,响应于接收到的请求通过接口412从应用程序模块402获取数据,并通过通信桥将所获取的数据返回给前端浏览器。这里,通信模块411可调用自身的回调函数来讲获取的数据返回给前端浏览器。
相应的,本申请还提出了一种前端浏览器,其与操作系统客户端交互数据,其中,操作系统客户端的WebView组件401中,注入了基于JavaScript的通信模块411并配置有面向操作系统客户端中应用程序模块402的接口412。如图5所示,前端浏览器包括通信模块501(即第二通信模块)和用户界面模块502。通信模块501建立与通信模块411之间的基于JavaScript的通信桥。用户界面模块502,响应于用户操作而确定应用程序模块402和前端浏览器之间需要传递的数据。通信模块501,通过通信桥与通信模块411传递用户界面模块502确定的数据,其中,通信模块411通过接口412与应用程序模块402传递数据。
在一些实例中,通信模块501包括:监听模块511和数据传递模块512。监听模块511,监听来自通信模块411的参数以确定通信桥是否准备好,在确定通信桥已准备好之后通知用户界面模块502。用户界面模块502,当被通知通信桥已准备好且已确定需要传递的数据之后,调用数据传递模块512。数据传递模块512,通过通信桥与通信模块411传递用户界面模块502确定的数据。
在一些实例中,当用户界面模块502确定需要从前端浏览器向应用程序模块402传递数据时,用户界面模块502调用通信模块501并传递数据给通信模块501,通信模块501将数据通过通信桥传递给通信模块411,以使通信模块411通过接口412将当前收到的数据传递给应用程序模块402。这里,用户界面模块502可以调用数据传递模块512来传递数据,并由数据传递模块512将数据传递给通信模块411。
在一些实例中,通信模块501包括回调函数。用户界面模块502调用回调函数并传递数据给回调函数,回调函数将数据传递给通信模块411,并获取通信模块411在传递数据给应用程序模块402之后返回的执行状态。这里,用户界面模块502可以调用数据传递模块512中的回调函数来传递数据。
在一些实例中,当用户界面模块502确定需要从应用程序模块402向前端浏览器传递数据时,用户界面模块502调用通信模块501并传递获取数据的请求给通信模块501,通信模块501通过通信桥向通信模块411发出从应用程序模块402获取数据的请求,以使通信模块411响应于接收到的请求通过接口412从应用程序模块402获取数据,并通过通信桥将获取的数据传递给通信模块501。这里,用户界面模块502可以调用数据传递模块512来发出上述请求,并由数据传递模块512接收来自操作系统客户端的通信模块411的数据。
在一些实例中,通信模块501包括回调函数。用户界面模块502调用回调函数并传递上述请求给回调函数,回调函数向通信模块411发出从应用程序模块402获取数据的请求。通信模块501再获取通信模块411在从应用程序模块402获取到此数据之后返回的此数据。这里,用户界面模块502可以调用数据传递模块512中的回调函数来发出上述请求。
上述各模块功能的具体实现原理在前文已有描述,这里不再赘述。
另外,在本申请各个实例中的操作系统客户端和前端浏览器以及其中的各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
在一实施例中,上述的操作系统客户端和前端浏览器可运行在各种计算设备中,并加载在该计算设备的存储器中。
图6示出了操作系统客户端所在的计算设备的组成结构图。如图6所示,该计算设备包括一个或者多个处理器(CPU)602、通信模块604、存储器606、用户接口610,以及用于互联这些组件的通信总线608。
处理器602可通过通信模块604接收和发送数据以实现网络通信和/或本地通信。
用户接口610包括一个或多个输出设备612,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口610也包括一个或多个输入设备614,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。
存储器606可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器606存储处理器602可执行的指令集,至少包括:
操作系统客户端616,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序,以及能够实现上述各实例中操作系统客户端的处理流程的程序。在一些实例中,操作系统客户端616可包括图4所示操作系统客户端中的各模块401~402以及411~412,各模块401~402以及411~412可以存储有机器可执行指令。处理器602通过执行存储器606中各模块401~402以及411~412中的机器可执行指令,进而能够实现上述各模块401~402以及411~412的功能。
图7示出了前端浏览器所在的计算设备的组成结构图。如图7所示,该计算设备包括一个或者多个处理器702、通信模块704、存储器706、用户接口710,以及用于互联这些组件的通信总线708。
处理器702可通过通信模块704接收和发送数据以实现网络通信和/或本地通信。
用户接口710包括一个或多个输出设备712,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口710也包括一个或多个输入设备714,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。
存储器706可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器706存储处理器702可执行的指令集,至少包括:
操作系统客户端716,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序。在一些实例中,操作系统716还可包括能够实现上述各实例中操作系统客户端的处理流程的程序。在一些实例中,操作系统716可包括图4所示操作系统客户端中的各模块401~402以及411~412,各模块401~402以及411~412可以存储有机器可执行指令。处理器702通过执行存储器706中各模块401~402以及411~412中的机器可执行指令,进而能够实现上述各模块401~402以及411~412的功能。
前端浏览器应用718,包括用于处理各种浏览器服务的应用程序,这种应用程序能够实现上述各实例中前端浏览器的处理流程。在一些实例中,前端浏览器应用718可包括图5所示前端浏览器中的各模块501~502及511~512,各模块501~502及511~512可以存储有机器可执行指令。处理器702通过执行存储器706中各模块501~502及511~512中的机器可执行指令,进而能够实现上述各模块501~502及511~512的功能。
另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述方法的任何一种实例。
以上所述仅为本申请的实例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (18)

1.一种终端设备中的数据交互方法,其特征在于,所述终端设备包括操作系统客户端和前端浏览器,该方法包括:
在所述操作系统客户端的网络视图WebView组件中注入基于JavaScript的第一通信模块,并在所述WebView组件中配置面向所述操作系统客户端中应用程序模块的接口;
在所述第一通信模块中,定义搭建所述第一通信模块与第二通信模块之间的通信桥并进行数据传输的方法,以及按照所述前端浏览器的协议,定义处理从所述第二通信模块接收到的请求的方法,并注入相应的JavaScript代码;其中,在所述前端浏览器中注入基于JavaScript的所述第二通信模块,在所述第二通信模块中,定义监听所述通信桥的方法以及基于所述通信桥传输数据的方法,并注入相应的JavaScript代码;
按照所述操作系统客户端的协议,对所述第一通信模块中定义的方法进行初始化,并与所述第二通信模块搭建所述通信桥;其中,所述第二通信模块监听到所述通信桥准备好后,通知所述前端浏览器的用户界面模块,通过所述通信桥和所述第一通信模块之间传递所述用户界面模块确定的数据;
当所述数据为所述应用程序模块中的第一应用程序所需的参数时,所述第一通信模块调用所述第一应用程序对应的接口,将所述参数传递给所述第一应用程序,并调用自己的回调函数向所述第二通信模块返回所述第一应用程序的执行状态;
当所述数据为向所述应用程序模块中的第二应用程序获取参数的请求时,所述第一通信模块调用所述第二应用程序对应的接口,将所述请求传递给所述第二应用程序,并调用自己的回调函数向所述第二通信模块返回所述第二应用程序的参数。
2.根据权利要求1所述的方法,其中,所述第一应用程序用于打开PDF文件,所述参数为所述PDF文件的统一资源定位器(URL)信息。
3.根据权利要求1所述的方法,其中,所述请求用于指示获取用户登录信息。
4.一种终端设备中的数据交互方法,其特征在于,所述终端设备包括操作系统客户端和前端浏览器,在所述操作系统客户端的网络视图WebView组件中,注入了基于JavaScript的第一通信模块,在所述前端浏览器中注入基于JavaScript的第二通信模块;在所述第一通信模块中,定义搭建所述第一通信模块与所述第二通信模块之间的通信桥并进行数据传输的方法,以及按照所述前端浏览器的协议,定义处理从所述第二通信模块接收到的请求的方法,并注入相应的JavaScript代码;所述终端设备中的数据交互方法包括:
所述前端浏览器在所述第二通信模块中,定义监听所述通信桥的方法以及基于所述通信桥传输数据的方法,并注入相应的JavaScript代码;
按照所述操作系统客户端的协议,对所述第二通信模块中定义的方法进行初始化,并与所述第一通信模块搭建所述通信桥;
所述第二通信模块监听到所述通信桥准备好后,通知用户界面模块;
当所述用户界面模块接收到第一用户操作时,基于所述第一用户操作,确定需要传递参数给所述操作系统客户端中的第一应用程序,则调用所述第二通信模块中的第一回调函数,向所述第一通信模块传递所述第一应用程序所需的参数;
当所述用户界面模块接收到第二用户操作时,基于所述第二用户操作,确定需要从所述操作系统客户端中的第二应用程序获取参数来执行相应操作,则调用所述第二通信模块中的第二回调函数,向所述第一通信模块传递从所述第二应用程序获取所需参数的请求。
5.根据权利要求4所述的方法,其中,注入基于JavaScript的通信模块是指内置JavaScript对象。
6.根据权利要求4所述的方法,其中,所述第一应用程序用于打开PDF文件,所述第一应用程序所需的参数为所述PDF文件的统一资源定位器(URL)信息。
7.根据权利要求4所述的方法,还包括:
在所述调用所述第二通信模块中的第一回调函数,向所述第一通信模块传递所述第一应用程序所需的参数之后,获取所述第一通信模块返回的所述第一应用程序的执行状态。
8.根据权利要求4所述的方法,其中,所述请求用于指示获取用户登录信息。
9.根据权利要求4所述的方法,还包括:
在所述调用所述第二通信模块中的第二回调函数,向所述第一通信模块传递从所述第二应用程序获取所需参数的请求之后,获取所述第一通信模块返回的所述第二应用程序的参数。
10.一种操作系统客户端,其特征在于,包括:在网络视图WebView组件中注入基于JavaScript的第一通信模块,并在所述WebView组件中配置面向所述操作系统客户端中应用程序模块的接口;在所述第一通信模块中,定义搭建所述第一通信模块与第二通信模块之间的通信桥并进行数据传输的方法,以及按照前端浏览器的协议,定义处理从所述第二通信模块接收到的请求的方法,并注入相应的JavaScript代码;其中,在所述前端浏览器中注入基于JavaScript的所述第二通信模块,在所述第二通信模块中,定义监听所述通信桥的方法以及基于所述通信桥传输数据的方法,并注入相应的JavaScript代码;
所述第一通信模块用于,按照所述操作系统客户端的协议,对所述第一通信模块中定义的方法进行初始化,并与所述第二通信模块搭建所述通信桥;当所述数据为所述应用程序模块中的第一应用程序所需的参数时,调用所述第一应用程序对应的接口,将所述参数传递给所述第一应用程序,并调用自己的回调函数向所述第二通信模块返回所述第一应用程序的执行状态;当所述数据为向所述应用程序模块中的第二应用程序获取参数的请求时,调用所述第二应用程序对应的接口,将所述请求传递给所述第二应用程序,并调用自己的回调函数向所述第二通信模块返回所述第二应用程序的参数。
11.根据权利要求10所述的客户端,其中,所述第一应用程序用于打开PDF文件,所述参数为所述PDF文件的统一资源定位器(URL)信息。
12.根据权利要求10所述的客户端,其中,所述请求用于指示获取用户登录信息。
13.一种前端浏览器,其特征在于,其与操作系统客户端交互数据,其中,在所述操作系统客户端的网络视图WebView组件中,注入了基于JavaScript的第一通信模块,在所述前端浏览器中注入基于JavaScript的第二通信模块;
在所述第一通信模块中,定义搭建所述第一通信模块与所述第二通信模块之间的通信桥并进行数据传输的方法,以及按照所述前端浏览器的协议,定义处理从所述第二通信模块接收到的请求的方法,并注入相应的JavaScript代码;在所述第二通信模块中,定义监听所述通信桥的方法以及基于所述通信桥传输数据的方法,并注入相应的JavaScript代码;
所述第二通信模块用于,按照所述操作系统客户端的协议,对所述第二通信模块中定义的方法进行初始化,并与所述第一通信模块搭建所述通信桥;监听到所述通信桥准备好后,通知用户界面模块;当所述用户界面模块接收到第一用户操作时,基于所述第一用户操作,确定需要传递参数给所述操作系统客户端中的第一应用程序,则调用所述第二通信模块中的第一回调函数,向所述第一通信模块传递所述第一应用程序所需的参数;
当所述用户界面模块接收到第二用户操作时,基于所述第二用户操作,确定需要从所述操作系统客户端中的第二应用程序获取参数来执行相应操作,则调用所述第二通信模块中的第二回调函数,向所述第一通信模块传递从所述第二应用程序获取所需参数的请求。
14.根据权利要求13所述的浏览器,其中,所述第二通信模块包括:监听模块和数据传递模块;其中,
所述监听模块用于,监听来自所述第一通信模块的参数以确定所述通信桥是否准备好,在确定所述通信桥已准备好之后通知所述用户界面模块;
所述用户界面模块用于,当被通知所述通信桥已准备好且已确定需要传递的数据之后,调用所述数据传递模块;及
所述数据传递模块用于,通过所述通信桥与所述第一通信模块传递所述用户界面模块确定的数据。
15.根据权利要求13所述的浏览器,其中,所述第二通信模块还用于,在所述调用所述第二通信模块中的第一回调函数,向所述第一通信模块传递所述第一应用程序所需的参数之后,获取所述第一通信模块返回的所述第一应用程序的执行状态。
16.根据权利要求13所述的浏览器,其中,所述第二通信模块还用于,在所述调用所述第二通信模块中的第二回调函数,向所述第一通信模块传递从所述第二应用程序获取所需参数的请求之后,获取所述第一通信模块返回的所述第二应用程序的参数。
17.一种计算设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至9中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,实现如权利要求1至9中任一项所述的方法。
CN201610555151.2A 2016-07-14 2016-07-14 终端设备中的数据交互方法、客户端及浏览器 Active CN107623704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610555151.2A CN107623704B (zh) 2016-07-14 2016-07-14 终端设备中的数据交互方法、客户端及浏览器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610555151.2A CN107623704B (zh) 2016-07-14 2016-07-14 终端设备中的数据交互方法、客户端及浏览器

Publications (2)

Publication Number Publication Date
CN107623704A CN107623704A (zh) 2018-01-23
CN107623704B true CN107623704B (zh) 2020-08-21

Family

ID=61087607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610555151.2A Active CN107623704B (zh) 2016-07-14 2016-07-14 终端设备中的数据交互方法、客户端及浏览器

Country Status (1)

Country Link
CN (1) CN107623704B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108363588B (zh) * 2018-02-07 2021-03-16 平安科技(深圳)有限公司 实现web与原生功能交互的方法、电子装置及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104808971A (zh) * 2014-01-24 2015-07-29 北京三星通信技术研究有限公司 网络应用程序管理器、方法、装置和移动终端
CN105607895A (zh) * 2014-11-21 2016-05-25 阿里巴巴集团控股有限公司 一种基于应用程序编程接口的应用程序的运行方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120210205A1 (en) * 2011-02-11 2012-08-16 Greg Sherwood System and method for using an application on a mobile device to transfer internet media content
CN103746990B (zh) * 2013-12-31 2018-02-27 梵飞(厦门)信息科技有限公司 一种移动终端中浏览器与客户端的数据交互系统和方法
CN105204875B (zh) * 2014-06-11 2019-08-06 腾讯科技(深圳)有限公司 网页调用native功能的方法和系统
WO2016033113A1 (en) * 2014-08-25 2016-03-03 The Sscg Group, Llc Content management and presentation systems and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104808971A (zh) * 2014-01-24 2015-07-29 北京三星通信技术研究有限公司 网络应用程序管理器、方法、装置和移动终端
CN105607895A (zh) * 2014-11-21 2016-05-25 阿里巴巴集团控股有限公司 一种基于应用程序编程接口的应用程序的运行方法和装置

Also Published As

Publication number Publication date
CN107623704A (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
US11921996B2 (en) Information processing terminal and control method
US11842222B2 (en) Using scripts to bootstrap applications with metadata from a template
US11477298B2 (en) Offline client replay and sync
CN104301443B (zh) 一种在web页面上调用端能力接口的方法和系统
US8239490B2 (en) Exposing resource capabilities to web applications
CN109101335B (zh) 扩展主机设备的功能
CN103942225A (zh) 一种混合型应用客户端的资源调用方法、客户端及系统
US9342333B2 (en) Backend custom code extensibility
EP3748500B1 (en) Inversion-of-control component service models for virtual environments
JP7564373B2 (ja) 情報呈示方法、装置及び電子機器
KR20150043438A (ko) 온보드 하드웨어 기능들을 가진 웹페이지들
CN103365840A (zh) 一种基于web的截图方法和装置
CN110598135A (zh) 网络请求处理方法、装置、计算机可读介质及电子设备
KR101955744B1 (ko) 로컬 서버를 통한 로컬 클라이언트 어플리케이션용 이벤트 서비스
JP6424440B2 (ja) 情報処理装置、機器、情報処理システム、情報処理方法及び表示制御プログラム
CN112015383A (zh) 一种登录方法和装置
CN107450946B (zh) Chrome网页与终端软件通讯方法、设备及存储介质
US20170359213A1 (en) Method for performing communication between browser and mobile terminal, and browser apparatus
CN107623704B (zh) 终端设备中的数据交互方法、客户端及浏览器
CN113946614A (zh) 一种iOS基于静态库的网络数据传输方法、装置及系统
CN111338898B (zh) 应用状态获取方法、装置、电子设备及可读存储介质
KR101553539B1 (ko) 동적 링크 제공 방법 및 이를 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN111124907A (zh) 一种手机游戏测试方法、装置和服务器
CN105791568B (zh) 一种信息处理方法及其终端
CN111158671B (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