CN112600786B - 数据交互方法及装置 - Google Patents
数据交互方法及装置 Download PDFInfo
- Publication number
- CN112600786B CN112600786B CN202011260505.3A CN202011260505A CN112600786B CN 112600786 B CN112600786 B CN 112600786B CN 202011260505 A CN202011260505 A CN 202011260505A CN 112600786 B CN112600786 B CN 112600786B
- Authority
- CN
- China
- Prior art keywords
- communication
- data
- target
- interacted
- interface
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Telephone Function (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种数据交互方法及装置,该方法包括:当native端与webview端进行数据交互时,确定待交互数据;启动webview端中的JavaScript,暴露其中已建立的第一通信桥和第二通信桥;基于交互规则,确定native端中的通信接口,native端设置多个通信接口,通信接口为公有接口或私有接口;基于待交互数据的目标传输方向,在第一通信桥和第二通信桥中选择目标通信桥;基于目标通信桥及通信接口实现数据交互过程。应用该方法,根据交互规则确定不同的通信接口,再应用通信桥实现native端与webview端之间的数据交互过程,无需暴露native端所有的通信接口,提高数据交互过程的安全性。
Description
技术领域
本发明涉及数据交互技术领域,特别是涉及一种数据交互方法及装置。
背景技术
目前,在移动应用的开发的过程中,通常会应用到webview来展示一些页面。在通过webview实现页面的展示过程中,通常需要webview端与原生native 端进行一些数据交互,例如:web页面需要判断用户是否登录、获取用户信息等。通过webview端与native端之间的数据交互,以实现移动应用的开发过程。
现有技术中,native端和webview端进行数据交互时,native端会暴露所有与webview端之间的通信接口,当webview端中承载的网页产品中,任意一个产品线需要更改其中一个消息接口数据时,该webview端中所有网页产品的通讯信息将会受到影响,且native端中暴露的所有通信接口,使得其在与webview 端进行进行数据传输的过程中,进行交互的数据也完全暴露。因此,现有技术中native端与webview端之间进行数据交互时,无法保证数据在传输过程中的安全性。
发明内容
有鉴于此,本发明提供一种数据交互方法,通过该方法,无需暴露native 端所有的通信接口,提高数据交互过程的安全性。
本发明还提供了一种数据交互装置,用以保证上述方法在实际中的实现及应用。
一种数据交互方法,包括:
当检测到原生native端与网页webview端需要进行数据交互时,确定所述native端与所述webview端之间的待交互数据;
启动预先设置于所述webview端中的JavaScript,并暴露所述JavaScript 中预先建立的第一通信桥和第二通信桥,所述第一通信桥为所述native端访问所述webview端时进行数据交互的交互桥梁,所述二通信桥为所述webview 端访问所述native端时进行数据交互的交互桥梁;
基于预先设置的交互规则,确定所述native端中与所述待交互数据对应的通信接口,所述native端设置有多个通信接口,所述通信接口为公有接口或私有接口,所述公有接口用于传输全局的数据,所述私有接口用于传输指定的数据;
确定所述待交互数据的目标传输方向,并基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥;
基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程。
上述的装置,可选的,所述基于预先设置的交互规则,确定所述native 中与所述待交互数据对应的通信接口,包括:
获取所述待交互数据的数据信息;
解析所述数据信息,获得所述待交互数据对应的数据标识码;
获取预先设置的通信表,并判断所述通信表中是否存在与所述数据标识码一致的通信码;
若所述通信表中存在与所述数据标识码一致的通信码,则确定所述native 中与所述待交互数据对应的通信接口为私有接口;
若所述通信表中不存在与所述数据标识码一致的通信码,则判断所述数据标识码是否包含用户对所述待交互数据进行授权的授权标识符;
若所述数据标识码包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
若所述数据标识码不包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为公有接口。
上述的装置,可选的,建立所述第一通信桥和所述第二通信桥的过程,包括:
确定所述native端访问所述webview端时对应的传输方向为第一传输方向,及所述webview端访问所述native端时对应的传输方向为第二传输方向;
基于所述第一传输方向及所述第二传输方向,设置所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,及所述第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数;
加载所述JavaScript的JS运行环境JScontext;
在所述JScontext中写入所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,生成所述第一传输方向对应的第一通信桥;
在所述JScontext中写入所述第二传输方向对应的第二通信桥接口名、第二通信参数和第二回调函数,生成所述第二传输方向对应的第二通信桥。
上述的装置,可选的,所述基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥,包括:
基于所述目标传输方向,确定预先设置的所述目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数;
基于所述目标通信桥接口名、目标通信参数及目标回调函数,确定所述JavaScript中所述目标传输方向对应的目标通信桥。
上述的装置,可选的,所述基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程,包括:
基于所述目标通信桥接口名,确定所述目标通信桥对应的API接口;
将所述API接口与所述通信接口连接,获得所述native端与所述webview 端之间的连接通道;
基于所述目标通信参数、所述目标回调函数及所述连接通道,对所述待交互数据进行传输。
一种数据交互装置,包括:
第一确定单元,用于当检测到原生native端与网页webview端需要进行数据交互时,确定所述native端与所述webview端之间的待交互数据;
启动单元,用于启动预先设置于所述webview端中的JavaScript,并暴露所述JavaScript中预先建立的第一通信桥和第二通信桥,所述第一通信桥为所述native端访问所述webview端时进行数据交互的交互桥梁,所述二通信桥为所述webview端访问所述native端时进行数据交互的交互桥梁;
第二确定单元,用于基于预先设置的交互规则,确定所述native端中与所述待交互数据对应的通信接口,所述native端设置有多个通信接口,所述通信接口为公有接口或私有接口,所述公有接口用于传输全局的数据,所述私有接口用于传输指定的数据;
选择单元,用于确定所述待交互数据的目标传输方向,并基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥;
交互单元,用于基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程。
上述的装置,可选的,所述第二确定单元,包括:
获取子单元,用于获取所述待交互数据的数据信息;
解析子单元,用于解析所述数据信息,获得所述待交互数据对应的数据标识码;
第一判断子单元,用于获取预先设置的通信表,并判断所述通信表中是否存在与所述数据标识码一致的通信码;
第一确定子单元,用于若所述通信表中存在与所述数据标识码一致的通信码,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
第二判断子单元,用于若所述通信表中不存在与所述数据标识码一致的通信码,则判断所述数据标识码是否包含用户对所述待交互数据进行授权的授权标识符;
第二确定子单元,用于若所述数据标识码包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
第三确定子单元,用于若所述数据标识码不包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为公有接口。
上述的装置,可选的,其特征在于,还包括:
第三确定单元,用于确定所述native端访问所述webview端时对应的传输方向为第一传输方向,及所述webview端访问所述native端时对应的传输方向为第二传输方向;
设置单元,用基于所述第一传输方向及所述第二传输方向,设置所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,及所述第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数;
加载单元,用于加载所述JavaScript的JS运行环境JScontext;
第一写入单元,用于在所述JScontext中写入所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,生成所述第一传输方向对应的第一通信桥;
第二写入单元,用于在所述JScontext中写入所述第二传输方向对应的第二通信桥接口名、第二通信参数和第二回调函数,生成所述第二传输方向对应的第二通信桥。
上述的装置,可选的,所述选择单元,包括:
选择子单元,用于基于所述目标传输方向,确定预先设置的所述目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数;基于所述目标通信桥接口名、目标通信参数及目标回调函数,确定所述JavaScript中所述目标传输方向对应的目标通信桥。
上述的装置,可选的,所述交互单元,包括:
第四确定子单元,用于基于所述目标通信桥接口名,确定所述目标通信桥对应的API接口;
连接子单元,用于将所述API接口与所述通信接口连接,获得所述native 端与所述webview端之间的连接通道;
传输子单元,用于基于所述目标通信参数、所述目标回调函数及所述连接通道,对所述待交互数据进行传输。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的数据交互方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的数据交互方法。
与现有技术相比,本发明包括以下优点:
本发明提供了一种数据交互方法,包括:当原生native端与网页webview 端进行数据交互时,确定待交互数据;启动webview端中的JavaScript,并暴露JavaScript中的第一通信桥和第二通信桥;基于交互规则,确定native端中与所述待交互数据对应的通信接口,native端设置有多个通信接口,通信接口为公有接口或私有接口,公有接口用于传输全局的数据,私有接口用于传输指定的数据;确定待交互数据的目标传输方向,并基于目标传输方向,在所述第一通信桥和所述第二通信桥中,选择待交互数据对应的目标通信桥;基于目标通信桥及所述通信接口,实现待交互数据对应的数据交互过程。应用本发明提供的方法,根据交互规则确定不同的通信接口,再应用通信桥实现 native端与webview端之间的数据交互过程,无需暴露native端所有的通信接口,提高数据交互过程的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据交互方法的方法流程图;
图2为本发明实施例提供的一种数据交互方法的又一方法流程图;
图3为本发明实施例提供的一种数据交互方法的再一方法流程图;
图4为本发明实施例提供的一种数据交互装置的装置结构图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本发明实施例提供了一种数据交互方法,该方法可以应用在多种系统平台,其执行主体可以为计算机终端或各种移动设备的处理器,所述方法的方法流程图如图1所示,具体包括:
S101:当检测到原生native端与网页webview端需要进行数据交互时,确定所述native端与所述webview端之间的待交互数据;
在本发明实施例中,原生,即native是一种计算机函数,native端是一种基于智能手机本地操作系统如iOS、Android、WP并使用原生程式编写运行的第三方应用程序。Webview端是是客户端内部嵌入的,可以基于开源的浏览器引擎webkit展示网页的控件。在应用程序的开发过程如果native端需要与 webview端进行数据交互时,需确定待交互的数据。
具体的,该待交互的数据可以是账号状态、会员信息或用户密码等
S102:启动预先设置于所述webview端中的JavaScript,并暴露所述 JavaScript中预先建立的第一通信桥和第二通信桥,所述第一通信桥为所述 native端访问所述webview端时进行数据交互的交互桥梁,所述二通信桥为所述webview端访问所述native端时进行数据交互的交互桥梁;
在本发明实施例中,在webview端中写入JavaScript,以通过该JavaScript 的运行环境,建立native端与webview端之间的通信桥。当native端与webview 端之间进行数据交互时,启动该JavaScript,以暴露其中的两个通信桥。
需要说明的是,第一通信桥和第二通信桥均为JavaScript中的JSbridge,JSbridge是JavaScript和Native之前的一种通信方式。简单的说,JSbridge就是定义native和JavaScript的通信,native只通过一个固定的桥对象调用 JavaScript,即通过第一通信桥调用JavaScript;JavaScript也只通过固定的桥对象调用native,即通过第二通信桥调用native。由于JavaScript设置于webview 中,因此,native端与webview端之间的数据交互可以根据JavaScript与native 之间JSbridge的调用实现。
S103:基于预先设置的交互规则,确定所述native端中与所述待交互数据对应的通信接口,所述native端设置有多个通信接口,所述通信接口为公有接口或私有接口,所述公有接口用于传输全局的数据,所述私有接口用于传输指定的数据;
在本发明实施例中,webview端可以按照native端各个通信接口所能传输的数据进行扩展,并根据各个通信接口构建对应的交互规则。该交互规则用于在native端与webview端进行数据交互时,确定native端所需要传输待交互的数据的通信接口。
其中,native端设置多个公有接口和私有接口。公有接口可以用于传输全局的数据,私有接口只能用于传输该接口对应指定的数据,且私有接口保密性较高,通常用于传输native端与webview端之间的重要数据。
需要说明的是,每个私有接口所指定的数据可以通过私有接口进行传输之外,在特定条件下也可以由公有接口进行传输。
S104:确定所述待交互数据的目标传输方向,并基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥;
在本发明实施例中,确定该待交互数据的目标传输方向是native端调用JavaScript,还是JavaScript调用native端,以此确定native端与webview端之间进行数据交互的目标通信桥。
S105:基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程。
在本发明实施例提供的方法中,通过该目标通信桥及通信接口,对该待交互数据进行传输,实现对该待交互数据对应的数据交互过程。
本发明实施例提供的数据交互方法中,当检测到native端与webview端需要进行数据交互时,确定待交互数据;启动webview端中预先设置的JavaScript,该JavaScript中建立有native端与webview端进行数据交互的JSbridge,即通信桥。将JavaScript中native端访问webview端对应的第一通信桥,以及webview 端访问native端对应的第二通信桥进行暴露,并根据预先设置的webview端与 native端之间交互规则,确定native端中需要传输该待交互数据的通信接口。再根据native端与webview端当前进行数据交互的目标传输方向,确定数据交互过程中对应的目标通信桥。通过通信接口及目标通信桥,native端和webview 端通过该目标通信桥和通信接口对该待交互数据进行传输,实现该待交互数据对应的数据交互过程。
基于上述实施例提供的方法,native端与webview端之间进行数据交互的过程有以下实施场景:
当native端需要向webview端发送用户的会员信息时,确定native端与 webview端之间的待交互数据为会员信息。启动webview端中的JavaScript,暴露该JavaScript中的第一通信桥和第二通信桥。根据该交互规则,确定该native 端中需要应用私有接口传输该会员信息,以此确定该native端中进行数据交互的通信接口为会员信息对应的私有接口。确定目标传输方向为native端访问 webview端,因此目标通信桥为第一通信桥。由该native端仅暴露该会员信息对应的私有接口,并通过该私有接口和第一通信桥向webview端传输该会员信息,实现对该会员信息对应的数据交互过程。
应用本发明实施例提供的方法,native端设置有多个通信接口,根据交互规则确定不同的通信接口,再应用通信桥实现native端与webview端之间的数据交互过程,无需暴露native端所有的通信接口,提高数据交互过程的安全性。
还需要说明的是,native端设置有多个通信接口,分别为公有接口和私有接口,在需要进行多个数据传输时,促使各个业务线根据自己的特性扩展适用于自己的消息通信接口,从而每个业务线不相互影响,保证其独立性,无需均经过同一个接口进行数据交互,不仅减少需要经常迭代而出现的全局故障,解决其全局暴露数据安全性的问题
本发明实施例提供的方法中,基于上述S103的内容,由于native端设置有多个不同的通信接口,各个通信接口分别为公有接口和私有接口,用于传输不同的数据。因此,需要确定该待交互数据对应的通信接口。参考图2,具体的,所述基于预先设置的交互规则,确定所述native中与所述待交互数据对应的通信接口,可以包括:
S201:获取所述待交互数据的数据信息;
在本发明实施例中,待交互数据的数据信息中包含数据名称、数据类型、数据标识码及数据参数等。
S202:解析所述数据信息,获得所述待交互数据对应的数据标识码;
在本发明实施例中,对该数据信息进行解析,获得其中的数据标识码。该数据标识码用于标识该待交互数据。
S203:获取预先设置的通信表,并判断所述通信表中是否存在与所述数据标识码一致的通信码;若一致,则执行S203;若不一致,则执行S204;
在本发明实施中,该通信表中包含多个通信码,每个通信码为一种数据对应的标识码。因此,将该待交互数据对应的数据标识码与该通信表中的各个通信码进行匹配,以确定该通信表中是否存在任一与该数据标识码一致的通信码。
S204:若所述通信表中存在与所述数据标识码一致的通信码,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
在本发明实施例中,若存在与该数据标识码一致的通信码,则该待交互数据对应的通信接口为私有接口,该私有接口为与该数据标识码一致的通信接口。
可以理解的是,native端中设置有多个私有接口,每个私有接口用于传输不同的数据。在该通信表中包含有多个通信码,每个通信码分别对应一个私有接口。
S205:若所述通信表中不存在与所述数据标识码一致的通信码,则判断所述数据标识码是否包含用户对所述待交互数据进行授权的授权标识符;若是,则执行S206;若否,则执行S207;
在本发明实施中,若通信表中不存在与该数据标识码一致的通信码,则再次确定用户是否对该待交互数据进行授权,即判断该数据标识码中是否包含授权标识符。
S206:若所述数据标识码包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
在本发明实施例中,若该数据标识码中包含授权标识符,则表征用户已对该待交互数据进行定义。即,用户已经定义了该待交互数据只能通过指定的私有接口进行传输,由此可知,通过该授权标识符可以确定native端需要传输该待交互数据的私有接口。
S207:若所述数据标识码不包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为公有接口。
在本发明实施例中,当通信表中既不包含与该待交互数据对应的数据标识码一致的通信码,也不包含用户授权的授权标识符时,native端只能通过公有接口对该待交互数据进行数据传输。
可选的,若该native端上设置有多个公有接口,则可以选择任意一个公有接口传输该待交互数据。
本发明实施例提供的数据交互方法中,获取该待交互数据的数据信息 ,通过解析信息获取数据标识码,并应用通信表判断通信表中是否存在任一通信码与该数据标识码一致。若存在,则确定该待交互数据对应的通信接口为该通信码对应的私有接口;若不存在则需要再次判断该数据标识码中是否包含授权标识符。若包含,则确定该待交互数据对应的通信接口为该授权标识符对应的私有接口;若不包含,则确定该待交互数据对应的通信接口为公有接口。
应用本发明实施例提供的方法,通过交互规则中通信表及数据标识码,确定该待交互数据对应的通信接口,以通过指定的通信接口传输该待交互数据,提高数据交互过程的安全性。
本发明实施例提供的方法中,第一通信桥和第二通信桥是应用JavaScript 语言在JavaScript中建立的native端与webview端进行数据交互的桥梁。该第一通信桥和第二通信桥的作用是连接native端与webview端,使得native端可以调用webview端的JavaScript代码,让webview端可以调用native原生代码。其中,建立所述第一通信桥和所述第二通信桥的过程,具体可以包括:
确定所述native端访问所述webview端时对应的传输方向为第一传输方向,及所述webview端访问所述native端时对应的传输方向为第二传输方向;
基于所述第一传输方向及所述第二传输方向,设置所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,及所述第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数;
加载所述JavaScript的JS运行环境JScontext;
在所述JScontext中写入所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,生成所述第一传输方向对应的第一通信桥;
在所述JScontext中写入所述第二传输方向对应的第二通信桥接口名、第二通信参数和第二回调函数,生成所述第二传输方向对应的第二通信桥。
本发明实施例提供的数据交互方法中,当native端需要调用webview端中的JavaScript时,即native端需要访问webview端时,其对应的传输方向为第一传输方向;JavaScript调用native端时,即,webview端需要访问native端时,其对应的传输方向为第二传输方向。根据第一传输方向和第二传输方向,设置第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,及第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数。在 JavaScript的JScontext中写入第一通信桥接口名、第一通信参数和第一回调函数生成第一通信桥,写入第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数生成第二通信桥。
需要说明的是,在JavaScript中建立第一通信桥和第二通信桥的过程中,可以在该桥中设置对应的数据传输参数及数据回调方法。通过数据传输参数及数据回调方法,当JavaScript调用native端时,可以通过数据传输参数生成一个url scheme,通过该urlscheme访问native端。而当native端调用JavaScript时,通过通信桥调用webview中JavaScript的方法,被动通知webview进行回调。
应用本发明是实施例提供的方法,通过建立native端与webview端之间的通信桥,以通过通信桥实现native端与webview端之间的数据交互过程。
本发明实施例提供的方法中,在建立好第一通信桥和第二通信桥,并且设立两端之间对应的交互规则后,可以实现native端与webview端之间的数据交互。在native端与webview端之间进行数据交互的过程中,需要根据当前需要交互对应的目标传输方向,从第一通信桥和第二通信桥中选择出目标通信桥。参考图3的过程,所述基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥,可以包括:
S301:基于所述目标传输方向,确定预先设置的所述目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数;
在本发明实施例中,在建立第一通信桥和第二通信桥的过程中,已经设置与第一通信桥对应的第一通信桥接口名、第一通信参数和第一回调函数,以及第二通信桥对应的第二通信桥接口名、第二通信参数和第二回调函数。因此,该目标传输方向为第一传输方向或第二传输方向。若为第一传输方向,则该目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数分别为第一通信桥接口名、第一通信参数和第一回调函数;若为第二传输方向,则该目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数分别为第二通信桥接口名、第二通信参数和第二回调函数。
S302:基于所述目标通信桥接口名、目标通信参数及目标回调函数,确定所述JavaScript中所述目标传输方向对应的目标通信桥。
在本发明实施例中,通过通信桥接口名、通信参数及回调函数确定其对应的通信桥。
本发明实施例提供的数据交互方法中,在建立第一通信桥和第二通信桥的过程中已设置其对应的通信桥接口名、通信参数和回调函数。因此,在数据交互过程中仅需要确定目标传输方向,即可确定该目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数,以通过目标通信桥接口名、目标通信参数及目标回调函数,确定该目标通信桥为第一通信桥还是第二通信桥。本发明实施例通过目标通信桥接口名、目标通信参数及目标回调函数确定目标传输方向对应的目标通信桥,由目标通信桥和通信接口实现数据交互过程。
本发明实施例提供的方法中,在确定目标通信桥及通信接口后,需要将目标通信桥与通信接口连接,以传输该待交互数据。具体的,所述基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程,包括:
基于所述目标通信桥接口名,确定所述目标通信桥对应的API接口;
将所述API接口与所述通信接口连接,获得所述native端与所述webview 端之间的连接通道;
基于所述目标通信参数、所述目标回调函数及所述连接通道,对所述待交互数据进行传输。
本发明实施例提供的数据交互中,目标通信桥中设置有进行数据传输对应的API接口。在暴露第一通信桥和第二通信桥的过程中,可以根据该目标传输方向对应的目标通信桥接口名,确定目标通信桥对应的API接口,即确定目标通信桥中API接口的位置。以根据该API接口的位置将API接口与通信接口连接,形成native端与webview端之间的连接通道。在native端与webview端进行数据交互的过程,通过目标通信参数和目标回调函数,实现对待交互数据进行调用和回调的过程,再经由连接通道实现待交互数据的传输。
应用本发明实施例提供的方法,通过API接口和通信接口连接形成连接通道,并通过该连接通道传输数据,以保证数据在传输过程中的安全性。
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
与图1所述的方法相对应,本发明实施例还提供了一种数据交互装置,用于对图1中方法的具体实现,本发明实施例提供的数据交互装置可以应用计算机终端或各种移动设备中,其结构示意图如图4所示,具体包括:
第一确定单元401,用于当检测到原生native端与网页webview端需要进行数据交互时,确定所述native端与所述webview端之间的待交互数据;
启动单元402,用于启动预先设置于所述webview端中的JavaScript,并暴露所述JavaScript中预先建立的第一通信桥和第二通信桥,所述第一通信桥为所述native端访问所述webview端时进行数据交互的交互桥梁,所述二通信桥为所述webview端访问所述native端时进行数据交互的交互桥梁;
第二确定单元403,用于基于预先设置的交互规则,确定所述native端中与所述待交互数据对应的通信接口,所述native端设置有多个通信接口,所述通信接口为公有接口或私有接口,所述公有接口用于传输全局的数据,所述私有接口用于传输指定的数据;
选择单元404,用于确定所述待交互数据的目标传输方向,并基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥;
交互单元405,用于基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程。
本发明实施例提供的装置中,当检测到native端与webview端需要进行数据交互时,确定待交互数据;启动webview端中预先设置的JavaScript,该 JavaScript中建立有native端与webview端进行数据交互的JSbridge,即通信桥。将JavaScript中native端访问webview端对应的第一通信桥,以及webview 端访问native端对应的第二通信桥进行暴露,并根据预先设置的webview端与native端之间交互规则,确定native端中需要传输该待交互数据的通信接口。再根据native端与webview端当前进行数据交互的目标传输方向,确定数据交互过程中对应的目标通信桥。通过通信接口及目标通信桥,native端和 webview端通过该目标通信桥和通信接口对该待交互数据进行传输,实现该待交互数据对应的数据交互过程。
应用本发明提供的装置,native端设置有多个通信接口,根据交互规则确定不同的通信接口,再应用通信桥实现native端与webview端之间的数据交互过程,无需暴露native端所有的通信接口,提高数据交互过程的安全性。
本发明实施例提供的装置中,所述第二确定单元403,包括:
获取子单元,用于获取所述待交互数据的数据信息;
解析子单元,用于解析所述数据信息,获得所述待交互数据对应的数据标识码;
第一判断子单元,用于获取预先设置的通信表,并判断所述通信表中是否存在与所述数据标识码一致的通信码;
第一确定子单元,用于若所述通信表中存在与所述数据标识码一致的通信码,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
第二判断子单元,用于若所述通信表中不存在与所述数据标识码一致的通信码,则判断所述数据标识码是否包含用户对所述待交互数据进行授权的授权标识符;
第二确定子单元,用于若所述数据标识码包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
第三确定子单元,用于若所述数据标识码不包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为公有接口。
本发明实施例提供的装置中,还包括:
第三确定单元,用于确定所述native端访问所述webview端时对应的传输方向为第一传输方向,及所述webview端访问所述native端时对应的传输方向为第二传输方向;
设置单元,用基于所述第一传输方向及所述第二传输方向,设置所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,及所述第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数;
加载单元,用于加载所述JavaScript的JS运行环境JScontext;
第一写入单元,用于在所述JScontext中写入所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,生成所述第一传输方向对应的第一通信桥;
第二写入单元,用于在所述JScontext中写入所述第二传输方向对应的第二通信桥接口名、第二通信参数和第二回调函数,生成所述第二传输方向对应的第二通信桥。
本发明实施例提供的装置中,所述选择单元404,包括:
选择子单元,用于基于所述目标传输方向,确定预先设置的所述目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数;基于所述目标通信桥接口名、目标通信参数及目标回调函数,确定所述JavaScript中所述目标传输方向对应的目标通信桥。
本发明实施例提供的装置中,所述交互单元405,包括:
第四确定子单元,用于基于所述目标通信桥接口名,确定所述目标通信桥对应的API接口;
连接子单元,用于将所述API接口与所述通信接口连接,获得所述native 端与所述webview端之间的连接通道;
传输子单元,用于基于所述目标通信参数、所述目标回调函数及所述连接通道,对所述待交互数据进行传输。
以上本发明实施例公开的数据交互装置中各个单元及子单元的具体工作过程,可参见本发明上述实施例公开的数据交互方法中的对应内容,这里不再进行赘述。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述数据交互方法。
本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503 执行所述一个或者一个以上指令502进行以下操作:
当检测到原生native端与网页webview端需要进行数据交互时,确定所述native端与所述webview端之间的待交互数据;
启动预先设置于所述webview端中的JavaScript,并暴露所述JavaScript 中预先建立的第一通信桥和第二通信桥,所述第一通信桥为所述native端访问所述webview端时进行数据交互的交互桥梁,所述二通信桥为所述webview 端访问所述native端时进行数据交互的交互桥梁;
基于预先设置的交互规则,确定所述native端中与所述待交互数据对应的通信接口,所述native端设置有多个通信接口,所述通信接口为公有接口或私有接口,所述公有接口用于传输全局的数据,所述私有接口用于传输指定的数据;
确定所述待交互数据的目标传输方向,并基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥;
基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种数据交互方法,其特征在于,包括:
当检测到原生native端与网页webview端需要进行数据交互时,确定所述native端与所述webview端之间的待交互数据;
启动预先设置于所述webview端中的JavaScript,并暴露所述JavaScript中预先建立的第一通信桥和第二通信桥,所述第一通信桥为所述native端访问所述webview端时进行数据交互的交互桥梁,所述二通信桥为所述webview端访问所述native端时进行数据交互的交互桥梁;
基于预先设置的交互规则,确定所述native端中与所述待交互数据对应的通信接口,所述native端设置有多个通信接口,所述通信接口为公有接口或私有接口,所述公有接口用于传输全局的数据,所述私有接口用于传输指定的数据;
确定所述待交互数据的目标传输方向,并基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥;
基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程;
所述基于预先设置的交互规则,确定所述native中与所述待交互数据对应的通信接口,包括:
获取所述待交互数据的数据信息;
解析所述数据信息,获得所述待交互数据对应的数据标识码;
获取预先设置的通信表,并判断所述通信表中是否存在与所述数据标识码一致的通信码;
若所述通信表中存在与所述数据标识码一致的通信码,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
若所述通信表中不存在与所述数据标识码一致的通信码,则判断所述数据标识码是否包含用户对所述待交互数据进行授权的授权标识符;
若所述数据标识码包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
若所述数据标识码不包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为公有接口。
2.根据权利要求1所述的方法,其特征在于,建立所述第一通信桥和所述第二通信桥的过程,包括:
确定所述native端访问所述webview端时对应的传输方向为第一传输方向,及所述webview端访问所述native端时对应的传输方向为第二传输方向;
基于所述第一传输方向及所述第二传输方向,设置所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,及所述第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数;
加载所述JavaScript的JS运行环境JScontext;
在所述JScontext中写入所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,生成所述第一传输方向对应的第一通信桥;
在所述JScontext中写入所述第二传输方向对应的第二通信桥接口名、第二通信参数和第二回调函数,生成所述第二传输方向对应的第二通信桥。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥,包括:
基于所述目标传输方向,确定预先设置的所述目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数;
基于所述目标通信桥接口名、目标通信参数及目标回调函数,确定所述JavaScript中所述目标传输方向对应的目标通信桥。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程,包括:
基于所述目标通信桥接口名,确定所述目标通信桥对应的API接口;
将所述API接口与所述通信接口连接,获得所述native端与所述webview端之间的连接通道;
基于所述目标通信参数、所述目标回调函数及所述连接通道,对所述待交互数据进行传输。
5.一种数据交互装置,其特征在于,包括:
第一确定单元,用于当检测到原生native端与网页webview端需要进行数据交互时,确定所述native端与所述webview端之间的待交互数据;
启动单元,用于启动预先设置于所述webview端中的JavaScript,并暴露所述JavaScript中预先建立的第一通信桥和第二通信桥,所述第一通信桥为所述native端访问所述webview端时进行数据交互的交互桥梁,所述二通信桥为所述webview端访问所述native端时进行数据交互的交互桥梁;
第二确定单元,用于基于预先设置的交互规则,确定所述native端中与所述待交互数据对应的通信接口,所述native端设置有多个通信接口,所述通信接口为公有接口或私有接口,所述公有接口用于传输全局的数据,所述私有接口用于传输指定的数据;
选择单元,用于确定所述待交互数据的目标传输方向,并基于所述目标传输方向,在所述第一通信桥和所述第二通信桥中,选择所述待交互数据对应的目标通信桥;
交互单元,用于基于所述目标通信桥及所述通信接口,实现所述待交互数据对应的数据交互过程;
所述第二确定单元,包括:
获取子单元,用于获取所述待交互数据的数据信息;
解析子单元,用于解析所述数据信息,获得所述待交互数据对应的数据标识码;
第一判断子单元,用于获取预先设置的通信表,并判断所述通信表中是否存在与所述数据标识码一致的通信码;
第一确定子单元,用于若所述通信表中存在与所述数据标识码一致的通信码,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
第二判断子单元,用于若所述通信表中不存在与所述数据标识码一致的通信码,则判断所述数据标识码是否包含用户对所述待交互数据进行授权的授权标识符;
第二确定子单元,用于若所述数据标识码包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为私有接口;
第三确定子单元,用于若所述数据标识码不包含用户对所述待交互数据进行授权的授权标识符,则确定所述native中与所述待交互数据对应的通信接口为公有接口。
6.根据权利要求5所述的装置,其特征在于,还包括:
第三确定单元,用于确定所述native端访问所述webview端时对应的传输方向为第一传输方向,及所述webview端访问所述native端时对应的传输方向为第二传输方向;
设置单元,用基于所述第一传输方向及所述第二传输方向,设置所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,及所述第二传输方向对应的第二通信桥接口名、第一通信参数和第二回调函数;
加载单元,用于加载所述JavaScript的JS运行环境JScontext;
第一写入单元,用于在所述JScontext中写入所述第一传输方向对应的第一通信桥接口名、第一通信参数和第一回调函数,生成所述第一传输方向对应的第一通信桥;
第二写入单元,用于在所述JScontext中写入所述第二传输方向对应的第二通信桥接口名、第二通信参数和第二回调函数,生成所述第二传输方向对应的第二通信桥。
7.根据权利要求5所述的装置,其特征在于,所述选择单元,包括:
选择子单元,用于基于所述目标传输方向,确定预先设置的所述目标传输方向对应的目标通信桥接口名、目标通信参数及目标回调函数;基于所述目标通信桥接口名、目标通信参数及目标回调函数,确定所述JavaScript中所述目标传输方向对应的目标通信桥。
8.根据权利要求7所述的装置,其特征在于,所述交互单元,包括:
第四确定子单元,用于基于所述目标通信桥接口名,确定所述目标通信桥对应的API接口;
连接子单元,用于将所述API接口与所述通信接口连接,获得所述native端与所述webview端之间的连接通道;
传输子单元,用于基于所述目标通信参数、所述目标回调函数及所述连接通道,对所述待交互数据进行传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260505.3A CN112600786B (zh) | 2020-11-12 | 2020-11-12 | 数据交互方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260505.3A CN112600786B (zh) | 2020-11-12 | 2020-11-12 | 数据交互方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112600786A CN112600786A (zh) | 2021-04-02 |
CN112600786B true CN112600786B (zh) | 2022-06-07 |
Family
ID=75182983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011260505.3A Active CN112600786B (zh) | 2020-11-12 | 2020-11-12 | 数据交互方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112600786B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739967A (zh) * | 2016-01-19 | 2016-07-06 | 四川长虹电器股份有限公司 | 移动应用中js异步调用native的方法 |
CN108322416B (zh) * | 2017-01-16 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种安全认证实现方法、装置及系统 |
CN108959864B (zh) * | 2017-05-25 | 2021-09-24 | 阿里巴巴集团控股有限公司 | 功能调用鉴权、调用功能的方法和装置及权限信息建立方法 |
AU2018264158A1 (en) * | 2017-12-07 | 2019-06-27 | Visa International Service Association | Helper software developer kit for native device hybrid applications |
CN108647014A (zh) * | 2018-05-08 | 2018-10-12 | 山东汇贸电子口岸有限公司 | 一种前端与客户端混合交互的分层设计方法及系统 |
CN108932427A (zh) * | 2018-05-18 | 2018-12-04 | 华中科技大学 | 一种Android应用多开环境中限制访问的控制方法及系统 |
US10664290B2 (en) * | 2018-08-01 | 2020-05-26 | Red Hat, Inc. | Application environment that implements native code functionality in progressive web applications |
CN109976831A (zh) * | 2019-03-28 | 2019-07-05 | 山东浪潮通软信息科技有限公司 | 一种JavaScript和原生APP之间数据交互方法 |
CN111800426A (zh) * | 2020-07-07 | 2020-10-20 | 腾讯科技(深圳)有限公司 | 应用程序中原生代码接口的访问方法、装置、设备及介质 |
-
2020
- 2020-11-12 CN CN202011260505.3A patent/CN112600786B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112600786A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168960B (zh) | 一种业务执行方法及装置 | |
US9485240B2 (en) | Multi-account login method and apparatus | |
CN107688529B (zh) | 组件调试方法和装置 | |
CN109873735B (zh) | H5页面的性能测试方法、装置和计算机设备 | |
US10084637B2 (en) | Automatic task tracking | |
CN110011875B (zh) | 拨测方法、装置、设备及计算机可读存储介质 | |
WO2019141192A1 (zh) | Wi-Fi连接方法、计算机设备及存储介质 | |
CN109831351B (zh) | 链路跟踪方法、装置、终端及存储介质 | |
US9628939B2 (en) | Data calling method and device | |
CN107918587B (zh) | 一种应用程序的调试方法及系统 | |
CN112600786B (zh) | 数据交互方法及装置 | |
CN114816637B (zh) | 一种嵌入小程序上的应用显示方法、装置及系统 | |
CN109995931B (zh) | 一种实现自动呼叫的方法及装置 | |
CN112491940A (zh) | 代理服务器的请求转发方法及装置、存储介质及电子设备 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN114237926A (zh) | 多平台交互方法、装置、设备、存储介质及计算机程序产品 | |
US9959195B2 (en) | Dynamic instrumentation of WSGI applications | |
CN114936151A (zh) | 调试页面的显示方法、装置、设备、存储介质及通信系统 | |
CN108471635B (zh) | 用于连接无线接入点的方法和设备 | |
CN111294219B (zh) | 一种终端配置方法及装置 | |
CN113254108A (zh) | 基于小程序的门店操作方法及装置、电子设备、存储介质 | |
CN106371822A (zh) | 一种通用的云平台国际化方法和装置 | |
CN108459890B (zh) | 用于应用的界面显示方法和装置 | |
CN114356452B (zh) | 定位结果信息的获取方法、装置、电子设备及存储介质 | |
CN110633254A (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 |