CN112988125B - 一种数据桥接方法、装置、设备和存储介质 - Google Patents

一种数据桥接方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112988125B
CN112988125B CN201911213238.1A CN201911213238A CN112988125B CN 112988125 B CN112988125 B CN 112988125B CN 201911213238 A CN201911213238 A CN 201911213238A CN 112988125 B CN112988125 B CN 112988125B
Authority
CN
China
Prior art keywords
bridging
data
function
preset
bridge
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
CN201911213238.1A
Other languages
English (en)
Other versions
CN112988125A (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.)
Guangdong Mc Science And Technology Co ltd
Original Assignee
Guangdong Mc Science And Technology 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 Guangdong Mc Science And Technology Co ltd filed Critical Guangdong Mc Science And Technology Co ltd
Priority to CN201911213238.1A priority Critical patent/CN112988125B/zh
Publication of CN112988125A publication Critical patent/CN112988125A/zh
Application granted granted Critical
Publication of CN112988125B publication Critical patent/CN112988125B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种数据桥接方法、装置、设备和存储介质,该方法包括:获取原生模块生成的桥接数据;确定桥接数据对应的目标桥接函数标识;以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将桥接数据发送至本地响应RN模块中;其中,桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,预设桥接类预先继承预设数据桥接接口协议,预设数据桥接接口协议包含至少两个桥接函数。通过本发明实施例的技术方案,可以提高数据的桥接效率。

Description

一种数据桥接方法、装置、设备和存储介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种数据桥接方法、装置、设备和存储介质。
背景技术
本地响应RN(React Native)模块是一种开源的跨平台移动应用开发框架。在使用RN模块开发的过程中,往往有些业务需求在RN模块中实现起来比较麻烦,并且短时间内没有想到更佳的实现办法,此时可以通过在原生模块中实现,然后将数据桥接到RN模块中使用。
目前,在基于Android系统开发的应用软件中,现有的数据桥接方式是通过利用一个输入参数类型固定的桥接函数实现的。然而,由于现有的桥接函数的输入参数类型是固定的,从而在调用该桥接函数之前需要对桥接数据的数据类型进行较为复杂的类型转换,并且获取桥接函数的操作也较为复杂,使得调用操作并不便捷,大大降低了数据的桥接效率。
发明内容
本发明实施例提供了一种数据桥接方法、装置、设备和存储介质,以提高数据的桥接效率。
第一方面,本发明实施例提供了一种数据桥接方法,包括:
获取原生模块生成的桥接数据;
确定所述桥接数据对应的目标桥接函数标识;
以所述桥接数据为输入参数,调用桥接对象中与所述目标桥接函数标识对应的目标桥接函数,将所述桥接数据发送至本地响应RN模块中;
其中,所述桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,所述预设桥接类预先继承预设数据桥接接口协议,所述预设数据桥接接口协议包含至少两个桥接函数。
第二方面,本发明实施例还提供了一种数据桥接装置,包括:
桥接数据获取模块,用于获取原生模块生成的桥接数据;
目标桥接函数标识确模块,用于确定所述桥接数据对应的目标桥接函数标识;
桥接数据发送模块,用于以所述桥接数据为输入参数,调用桥接对象中与所述目标桥接函数标识对应的目标桥接函数,将所述桥接数据发送至本地响应RN模块中;
其中,所述桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,所述预设桥接类预先继承预设数据桥接接口协议,所述预设数据桥接接口协议包含至少两个桥接函数。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的数据桥接方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明任意实施例所提供的数据桥接方法。
本发明实施例通过预先创建一个预设桥接类,并将该预设桥接类继承预设数据桥接接口协议,通过调用该预设桥接类的伴生对象中的第一对象获取函数,可以更加便捷地获得桥接对象,提高了桥接对象的获取效率,并且获得的桥接对象可以包含预设数据桥接接口协议中的各个桥接函数。在获取原生模块生成的桥接数据时,可以确定出桥接数据对应的目标桥接函数标识,并以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将所述桥接数据发送至本地响应RN模块中,从而可以针对不同类型的桥接数据选择相应的桥接函数进行数据桥接,大大提高了数据的桥接效率。
附图说明
图1是本发明实施例一提供的一种数据桥接方法的流程图;
图2是本发明实施例二提供的一种数据桥接方法的流程图;
图3是本发明实施例三提供的一种数据桥接装置的结构示意图;
图4是本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据桥接方法的流程图,本实施例可适用于将原生模块产生的数据桥接至本地响应RN模块中的情况。该方法可以由数据桥接装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于搭载有Android系统的设备中,比如智能手机、平板电脑、智能电视或者笔记本电脑等智能终端。如图1所示,该方法具体包括以下步骤:
S110、获取原生模块生成的桥接数据。
其中,原生模块可以是在Android系统或者IOS系统中已经编辑好的功能模块。例如,原生模块可以是网页web模块。原生模块也可以是指利用非JavaScript语言编写的模块。桥接数据可以是指原生模块生成的,用于桥接至RN模块中的数据。桥接数据可以是但不限于弹幕数据、透传数据和房间数据。其中,房间数据可以是指直播平台中的直播间数据。桥接数据的类型可以包括多种,比如整型类型、字符串类型、键值对MAP类型等。
具体地,在原生模块生成房间信息时,需要实时监听是否发生房间事件,以便对每个房间事件的处理方式进行标识,进而使得RN模块可以基于该标识处理该房间事件。示例性地,S110可以包括:在基于Hook监听方式,监听到原生模块中产生房间事件时,确定房间事件对应的处理标识;将房间事件的房间信息和处理标识作为桥接数据。
其中,房间事件可以是但不限于打开房间、关闭房间和跳转房间等事件。每个房间事件对应一个处理标识,以便利用正确的处理方式处理房间事件。处理标识可以是但不限于打开标识、关闭标识和跳转标识。每个处理标识可以利用数字、字母和符号中的至少一种进行表征。Hook监听方式可以是指:通过设置钩子函数,在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。
具体地,可以通过房间注册函数registerRoom,注册所有房间事件来实现对房间事件的监听。当监听到原生模块中产生房间事件时,可以根据房间事件信息确定出该房间事件对应的处理标识,此时可以该房间事件的房间信息和处理标志作为桥接数据,以便发送至RN模块中,从而可以实现对房间数据的桥接。
S120、确定桥接数据对应的目标桥接函数标识。
其中,桥接函数可以是指用于将桥接数据发送至RN模块中的函数。桥接函数可以为多个。桥接函数标识可以是指用于唯一标识桥接函数的信息,以便区分不同的桥接函数。目标桥接函数标识可以是指用于发送当前获取的桥接数据的目标桥接函数的标识。
具体地,本实施例可以预先直接配置好每个桥接数据对应的目标桥接函数标识,也可以基于桥接数据的数据类型实时确定出相匹配的目标桥接函数标识,以提高数据桥接的动态性和灵活性。
示例性地,S120可以包括:确定桥接数据的目标数据类型;根据预先设置的数据类型与桥接函数标识之间的对应关系和目标数据类型,确定桥接数据对应的目标桥接函数标识。
其中,数据类型与桥接函数标识之间的对应关系可以以映射表的形式存在,其可以根据业务需求和场景预先进行设置。本实施例可以动态调整数据类型与桥接函数标识之间的对应关系,以便可以利用不同的桥接函数进行桥接,从而提高数据桥接的动态性和灵活性。
具体地,可以根据预先设置的数据类型与桥接函数标识之间的对应关系,确定出桥接数据的目标数据类型对应的桥接函数标识,作为桥接数据对应的目标桥接函数标识。
S130、以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将桥接数据发送至本地响应RN模块中,其中,桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,预设桥接类预先继承预设数据桥接接口协议,预设数据桥接接口协议包含至少两个桥接函数。
其中,预设桥接类可以是一个预先创建的,用于实现数据桥接功能的类。例如,预设桥接类的具体定义如下:
class PayBridgeManager(context:Context)
其中,预设桥接类的类名为PayBridgeManager,该类有一个形参为上下文Context类型的参数上下文对象context。Context可以是指Android中的上下文对象,以便通过该上下文对象可以更加便捷地获得上下文信息,从而可以将该上下文参数作为预设桥接类类的构造函数参数。
其中,预设数据桥接接口协议可以是预先定义的,用于桥接数据至RN模块中的协议。预设数据桥接接口协议可以包含至少两个桥接函数,以便基于桥接函数可以自动桥接数据至RN模块中。示例性地,可以预先定义一个预设数据桥接接口协议,且该预设数据桥接接口协议中包含预先定义的,但还未进行函数实现的至少两个桥接函数。例如,预设数据桥接接口协议可以定义如下:
其中,预设数据桥接接口协议IMessagee具有公有权限修饰符Public的接口类型。预设数据桥接接口协议IMessagee的内部包含三个桥接函数,分别为弹幕数据桥接函数onReceiveDanmuMessage、透传数据桥接函数onReceiveMsg和房间数据桥接函数onReceiveRoom。其中,弹幕数据桥接函数onReceiveDanmuMessage具有一个输入参数,且该输入参数的类型为Map类型。透传数据桥接函数onReceiveMsg具有一个输入参数,且该输入参数的类型为任意Object的数据类型。房间数据桥接函数onReceiveRoom具有两个输入参数,第一个输入参数可以为整型int类型的处理标识,第二个输入参数可以为任意Object类型的房间信息。
示例性地,预设桥接类可以预先继承预设数据桥接接口协议,以使基于预设桥接类创建出的桥接对象的对象类型可以为预设数据桥接接口协议类型。具体的继承过程可以包括:预设桥接类预先通过调用接口继承关键字,继承预设数据桥接接口协议,并复写预设数据桥接接口协议中的各个桥接函数,以使桥接函数实现将原生模块生成的桥接数据发送至本地响应RN模块中的桥接功能。具体地,预设桥接类可以通过调用接口继承关键字implement的方式,继承预设数据桥接接口协议,并在预设桥接类中通过复写@Override的方式来复写预设数据桥接接口协议中的各个桥接函数,通过将每个桥接函数的桥接逻辑功能在预设桥接类的每个复写函数中进行实现,使得后续创建出的桥接对象中的每个桥接函数均可以实现相应的数据桥接功能。
其中,本实施例可以通过调用预设桥接类的伴生对象中的第一对象获取函数获得桥接对象。其中,可以利用companion object修饰预设桥接类为伴生对象,该伴生对象在预设桥接类中只能存在一个,并且使得在预设桥接类中可以存在静态函数,从而可以直接通过类而不是对象的方式来调用第一对象获取函数,大大提高了函数调用效率。
其中,第一对象获取函数可以是预先定义的,用于获取桥接对象的函数。本实施例可以在companion object{}闭包中定义第一对象获取函数,以便可以在静态区中进行调用,提高调用的便捷性。例如,第一对象获取函数可以定义如下:
fun getPayBridgeManage(context:Context):PayBridgeManager{}
其中,第一对象获取函数的函数名称为getPayBridgeManage,其返回值为预设桥接类PayBridgeManager类型的桥接对象。第一对象获取函数的输入参数为Context类型的上下文参数context,以便可以获得预设桥接类实例化后的桥接对象。示例性地,在预设桥接类的构造函数参数包括上下文对象context时,可以以上下文对象context为输入参数,调用预设桥接类的伴生对象中的第一对象获取函数getPayBridgeManage,获得桥接对象。
示例性地,在第一对象获取函数getPayBridgeManage定义的上方,还可以增加@JvmStatic注解,以便可以兼容Java代码的调用,提高代码的兼容性。
具体地,在获得桥接数据时后,可以以该桥接数据为输入参数,调用预先获得的桥接对象中与目标桥接函数标识对应的目标桥接函数,将原生模块生成的该桥接数据快速地发送至RN模块中,从而提高了桥接效率。
本实施例的技术方案,通过预先创建一个预设桥接类,并将该预设桥接类继承预设数据桥接接口协议,通过调用该预设桥接类的伴生对象中的第一对象获取函数,可以更加便捷地获得桥接对象,提高了桥接对象的获取效率,并且获得的桥接对象可以包含预设数据桥接接口协议中的各个桥接函数。在获取原生模块生成的桥接数据时,可以确定出桥接数据对应的目标桥接函数标识,并以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将桥接数据发送至本地响应RN模块中,从而可以针对不同类型的桥接数据选择相应的桥接函数进行数据桥接,大大提高了数据的桥接效率。
在上述技术方案的基础上,在桥接数据为键值对类型的弹幕数据时,目标桥接函数可以为弹幕数据桥接函数onReceiveDanmuMessage(Map<String,Stirng>msg),该目标桥接函数可以通过如下步骤实现将弹幕数据发送至本地响应RN模块中的功能:
在通过调用数据校验函数,检测到弹幕数据为有效数据时,将弹幕数据的数据类型从键值对类型转换为预设弹幕类型,获得预设弹幕类型下的弹幕数据;调用预设发送对象中的数据发送函数,将预设弹幕类型下的弹幕数据发送至本地响应RN模块中。
其中,数据校验函数可以是预先定义的,用于校验弹幕数据是否为有效数据的函数。预设弹幕类型可以是指RN模块所支持的弹幕数据类型。预设发送对象可以是预先创建的,用于发送桥接数据的对象,其可以是RN模块提供的一个内置对象reactInstance。数据发送函数可以是预先定义的,用于发送桥接数据至RN模块中的函数。
具体地,以键值对类型的弹幕数据msg作为输入参数,调用数据校验函数checkDanm(msg),可以检测输入的弹幕数据是否为有效数据,即检测弹幕数据是否为空和弹幕数据的大小size是否大于零,当检测到弹幕数据不为空和弹幕数据的大小size大于零时,表明该弹幕数据是有效数据,否则为无效数据。若弹幕数据为无效数据,则可以通过return返回方式将该弹幕数据抛弃掉。由于RN模块并不支键值对MAP类型的数据结构,从而在弹幕数据为有效数据时,需要对弹幕数据进行类型转换,转换为RN模块支持的预设弹幕类型下的弹幕数据,并可以通过调用预设发送对象reactInstance中的数据发送函数sendMessage,将预设弹幕类型下的弹幕数据发送至本地响应RN模块中,从而实现了键值对类型的弹幕数据的桥接。
示例性地,在桥接数据为任意类型的透传数据时,目标桥接函数可以为透传数据桥接函数onReceiveMsg(Object msg),该目标桥接函数可以通过如下步骤实现将弹幕数据发送至本地响应RN模块中的功能:
在通过调用数据校验函数,检测到透传数据为有效数据时,调用预设发送对象中的数据发送函数,将透传数据发送至本地响应RN模块中。通过利用透传数据桥接函数可以透传数据,从而将业务数据无更改的投产至RN模块中。
示例性地,在桥接数据为房间数据,如int类型的处理标识和任意Object类型的房间信息时,目标桥接函数可以为房间数据桥接函数onReceiveRoom(int msgType,ObjectmsgInfo),该目标桥接函数可以通过如下步骤实现将弹幕数据发送至本地响应RN模块中的功能:
在通过调用数据校验函数,检测到房间数据为有效数据时,调用预设发送对象中的数据发送函数,将房间数据发送至本地响应RN模块中。
本实施例可以在同一个桥接通道中利用不同的桥接函数发送不同类型的桥接数据,从而可以具有高内聚低耦合的特点,便于开发,并且实现了桥接的统一性,大大提高了数据的桥接效率。
实施例二
图2为本发明实施例二提供的一种数据桥接方法的流程图,本实施例在上述实施例的基础上,对桥接对象的获取操作进行了详细描述。其中与上述实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例提供的数据桥接方法具体包括以下步骤:
S210、获取原生模块生成的桥接数据。
S220、确定桥接数据对应的目标桥接函数标识。
S230、通过调用预设桥接类的伴生对象中的第一对象获取函数,获得桥接对象。
具体地,在预设桥接类的构造函数参数包括上下文对象context时,可以以上下文对象context为输入参数,调用预设桥接类的伴生对象中的第一对象获取函数getPayBridgeManage,从而可以获得桥接对象。
需要说明的是,此处并不限定步骤S230的执行顺序。比如步骤骤S230可以在步骤S220之后顺序执行,也可以在步骤S210之前执行。
示例性地,第一对象获取函数可以通过如下步骤S231-S234实现获得桥接对象的功能:
S231、调用代理对象中的第二对象获取函数,获得返回对象,并将返回对象赋值至预设的参考对象中,参考对象为预设桥接类类型的对象;
其中,代理对象可以是指预先创建的,用于委托获取桥接对象的对象。第二对象获取函数可以是预先定义的,用于获得代理对象所获取的返回对象的函数。参考对象可以是预先创建的预设桥接类PayBridgeManager类型的可空对象,即该参考对象也可以空对象,也可以为非空对象。在初始创建参考对象时,创建出的参考对象为预设桥接类类型的空对象。
具体地,可以通过调用代理对象LPManagerPolymer中的第二对象获取函数getManagerObj,获得第二对象获取函数的返回对象,并将该返回对象赋值至预设的参考对象barrageBridge中。
S232、检测赋值后的参考对象是否为空对象;若是,则进入步骤S233;若否,则进入步骤S234。
具体地,可以通过if(barrageBridge==null)的方式,检测通过代理对象获取的对象barrageBridge是否为空对象。
S233、构建一个桥接对象,并调用代理对象中的对象缓存函数,将构建出的桥接对象缓存到代理对象中,并返回构建出的桥接对象。
其中,桥接对象可以是指手动构建的一个预设桥接类PayBridgeManager类型的对象。对象缓存函数可以是预先定义的,用于缓存构建出的桥接对象的函数。
具体地,在赋值后的参考对象为空对象时,表明代理对象中没有缓存桥接对象,此时可以通过barrageBridge=PayBridgeManager(context)的方式,构建出一个桥接对象,即参考对象barrageBridge,并可以以上下文对象context和参考对象barrageBridge为输入参数,调用代理对象LPManagerPolymer中的对象缓存函数LPManagerPolymer.setManagerObj(context,barrageBridge),将构建出的桥接对象缓存至代理对象中,以便下次可以直接从代理对象中更加快速地获得桥接对象,提高桥接对象的获取效率。构建出的桥接对象可以通过return barrageBridge的方式进行返回。
S234、将赋值后的参考对象进行返回,以获得桥接对象。
具体地,在赋值后的参考对象为非空对象时,表明代理对象中已缓存有桥接对象,此时可以直接将返回的对象作为桥接对象,从而大大提高了桥接对象的获取效率。
S240、以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将桥接数据发送至本地响应RN模块中。
本实施例的技术方案,在调用预设桥接类的伴生对象中的第一对象获取函数的过程中,通过结合代理对象的委托来托管对象,从而可以使得获得的桥接对象唯一,并且提高桥接对象的获取效率和便捷性。
以下是本发明实施例提供的数据桥接装置的实施例,该装置与上述各实施例的数据桥接方法属于同一个发明构思,在数据桥接装置的实施例中未详尽描述的细节内容,可以参考上述数据桥接方法的实施例。
实施例三
图3为本发明实施例三提供的一种数据桥接装置的结构示意图,本实施例可适用于将原生模块产生的数据桥接至本地响应RN模块中的情况,该装置具体可以包括:桥接数据获取模块310、目标桥接函数标识确模块320和桥接数据发送模块330。
其中,桥接数据获取模块310,用于获取原生模块生成的桥接数据;目标桥接函数标识确模块320,用于确定桥接数据对应的目标桥接函数标识;桥接数据发送模块330,用于以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将桥接数据发送至本地响应RN模块中;其中,桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,预设桥接类预先继承预设数据桥接接口协议,预设数据桥接接口协议包含至少两个桥接函数。
可选地,桥接函数标识确模块320,具体用于:
确定桥接数据的目标数据类型;根据预先设置的数据类型与桥接函数标识之间的对应关系和目标数据类型,确定桥接数据对应的目标桥接函数标识。
可选地,在桥接数据为键值对类型的弹幕数据时,目标桥接函数通过如下步骤实现将弹幕数据发送至本地响应RN模块中的功能:
在通过调用数据校验函数,检测到弹幕数据为有效数据时,将弹幕数据的数据类型从键值对类型转换为预设弹幕类型,获得预设弹幕类型下的弹幕数据;调用预设发送对象中的数据发送函数,将预设弹幕类型下的弹幕数据发送至本地响应RN模块中。
可选地,桥接数据获取模块310,具体用于:
在基于Hook监听方式,监听到原生模块中产生房间事件时,确定房间事件对应的处理标识;将房间事件的房间信息和处理标识作为桥接数据。
可选地,预设桥接类的构造函数参数包括上下文对象;相应地,该装置还包括:桥接对象获取模块,用于:以上下文对象为输入参数,调用预设桥接类的伴生对象中的第一对象获取函数,获得桥接对象。
可选地,第一对象获取函数通过如下步骤实现获得桥接对象的功能:
调用代理对象中的第二对象获取函数,获得返回对象,并将返回对象赋值至预设的参考对象中,参考对象为预设桥接类类型的对象;检测赋值后的参考对象是否为空对象;若是,则构建一个桥接对象,并调用代理对象中的对象缓存函数,将构建出的桥接对象缓存到代理对象中,并返回构建出的桥接对象。若否,则将赋值后的参考对象进行返回,以获得桥接对象。
可选地,该装置还包括:预设数据桥接接口协议继承模块,用于:
预设桥接类预先通过调用接口继承关键字,继承预设数据桥接接口协议,并复写预设数据桥接接口协议中的各个桥接函数,以使桥接函数实现将原生模块生成的桥接数据发送至本地响应RN模块中的桥接功能。
本发明实施例所提供的数据桥接装置可执行本发明任意实施例所提供的数据桥接方法,具备执行数据桥接方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四提供的一种设备的结构示意图。参见图4,该设备包括:
一个或多个处理器410;
存储器420,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器410执行,使得一个或多个处理器410实现如上述实施例中任意实施例所提供的数据桥接方法,该方法包括:
获取原生模块生成的桥接数据;
确定桥接数据对应的目标桥接函数标识;
以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将桥接数据发送至本地响应RN模块中;
其中,桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,预设桥接类预先继承预设数据桥接接口协议,预设数据桥接接口协议包含至少两个桥接函数。
图4中以一个处理器410为例;设备中的处理器410和存储器420可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据桥接方法对应的程序指令/模块(例如,数据桥接装置中的桥接数据获取模块310、目标桥接函数标识确模块320和桥接数据发送模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据桥接方法。
存储器420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本实施例提出的设备与上述实施例提出的数据桥接方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行数据桥接方法相同的有益效果。
实施例五
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例的数据桥接方法步骤,该方法包括:
获取原生模块生成的桥接数据;
确定桥接数据对应的目标桥接函数标识;
以桥接数据为输入参数,调用桥接对象中与目标桥接函数标识对应的目标桥接函数,将桥接数据发送至本地响应RN模块中;
其中,桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,预设桥接类预先继承预设数据桥接接口协议,预设数据桥接接口协议包含至少两个桥接函数。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (7)

1.一种数据桥接方法,其特征在于,包括:
获取原生模块生成的桥接数据;
确定所述桥接数据对应的目标桥接函数标识;
以所述桥接数据为输入参数,调用桥接对象中与所述目标桥接函数标识对应的目标桥接函数,将所述桥接数据发送至本地响应RN模块中;
其中,所述桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,所述预设桥接类预先继承预设数据桥接接口协议,所述预设数据桥接接口协议包含至少两个桥接函数;
所述预设桥接类预先继承预设数据桥接接口协议,包括:
所述预设桥接类预先通过调用接口继承关键字,继承预设数据桥接接口协议,并复写所述预设数据桥接接口协议中的各个桥接函数,以使所述桥接函数实现将原生模块生成的桥接数据发送至本地响应RN模块中的桥接功能;
所述预设桥接类的构造函数参数包括上下文对象;
相应地,通过调用预设桥接类的伴生对象中的第一对象获取函数,获得所述桥接对象,包括:
以所述上下文对象为输入参数,调用预设桥接类的伴生对象中的第一对象获取函数,获得所述桥接对象;
所述第一对象获取函数通过如下步骤实现获得所述桥接对象的功能:
调用代理对象中的第二对象获取函数,获得返回对象,并将所述返回对象赋值至预设的参考对象中,所述参考对象为所述预设桥接类类型的对象;
检测赋值后的参考对象是否为空对象;
若是,则构建一个桥接对象,并调用所述代理对象中的对象缓存函数,将构建出的桥接对象缓存到所述代理对象中,并返回构建出的桥接对象;
若否,则将赋值后的参考对象进行返回,以获得桥接对象。
2.根据权利要求1所述的方法,其特征在于,确定所述桥接数据对应的目标桥接函数标识,包括:
确定所述桥接数据的目标数据类型;
根据预先设置的数据类型与桥接函数标识之间的对应关系和所述目标数据类型,确定所述桥接数据对应的目标桥接函数标识。
3.根据权利要求1所述的方法,其特征在于,在所述桥接数据为键值对类型的弹幕数据时,所述目标桥接函数通过如下步骤实现将所述弹幕数据发送至本地响应RN模块中的功能:
在通过调用数据校验函数,检测到所述弹幕数据为有效数据时,将所述弹幕数据的数据类型从所述键值对类型转换为预设弹幕类型,获得所述预设弹幕类型下的弹幕数据;
调用预设发送对象中的数据发送函数,将所述预设弹幕类型下的弹幕数据发送至本地响应RN模块中。
4.根据权利要求1所述的方法,其特征在于,获取原生模块生成的桥接数据,包括:
在基于Hook监听方式,监听到原生模块中产生房间事件时,确定所述房间事件对应的处理标识;
将所述房间事件的房间信息和所述处理标识作为桥接数据。
5.一种数据桥接装置,其特征在于,包括:
桥接数据获取模块,用于获取原生模块生成的桥接数据;
目标桥接函数标识确模块,用于确定所述桥接数据对应的目标桥接函数标识;
桥接数据发送模块,用于以所述桥接数据为输入参数,调用桥接对象中与所述目标桥接函数标识对应的目标桥接函数,将所述桥接数据发送至本地响应RN模块中;
其中,所述桥接对象预先通过调用预设桥接类的伴生对象中的第一对象获取函数获得,所述预设桥接类预先继承预设数据桥接接口协议,所述预设数据桥接接口协议包含至少两个桥接函数;
所述预设桥接类预先继承预设数据桥接接口协议,包括:
所述预设桥接类预先通过调用接口继承关键字,继承预设数据桥接接口协议,并复写所述预设数据桥接接口协议中的各个桥接函数,以使所述桥接函数实现将原生模块生成的桥接数据发送至本地响应RN模块中的桥接功能;
所述预设桥接类的构造函数参数包括上下文对象;相应地,该装置还包括:桥接对象获取模块,用于:以上下文对象为输入参数,调用预设桥接类的伴生对象中的第一对象获取函数,获得桥接对象;
所述第一对象获取函数通过如下步骤实现获得桥接对象的功能:
调用代理对象中的第二对象获取函数,获得返回对象,并将返回对象赋值至预设的参考对象中,参考对象为预设桥接类类型的对象;检测赋值后的参考对象是否为空对象;若是,则构建一个桥接对象,并调用代理对象中的对象缓存函数,将构建出的桥接对象缓存到代理对象中,并返回构建出的桥接对象; 若否,则将赋值后的参考对象进行返回,以获得桥接对象。
6.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的数据桥接方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的数据桥接方法。
CN201911213238.1A 2019-12-02 2019-12-02 一种数据桥接方法、装置、设备和存储介质 Active CN112988125B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911213238.1A CN112988125B (zh) 2019-12-02 2019-12-02 一种数据桥接方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911213238.1A CN112988125B (zh) 2019-12-02 2019-12-02 一种数据桥接方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN112988125A CN112988125A (zh) 2021-06-18
CN112988125B true CN112988125B (zh) 2023-09-12

Family

ID=76331216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911213238.1A Active CN112988125B (zh) 2019-12-02 2019-12-02 一种数据桥接方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112988125B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893161A (zh) * 2015-12-14 2016-08-24 乐视网信息技术(北京)股份有限公司 在软件程序中调用资源的方法和装置
CN106339229A (zh) * 2016-08-31 2017-01-18 虎扑(上海)文化传播股份有限公司 一种针对移动平台的混合开发方法及系统
CN107133064A (zh) * 2017-03-16 2017-09-05 武汉斗鱼网络科技有限公司 原生应用的页面热更新方法及装置
CN107623738A (zh) * 2017-09-28 2018-01-23 中南大学 一种面向安卓应用的WebView桥接口污点映射及分析方法
CN108023808A (zh) * 2017-12-07 2018-05-11 深圳乐信软件技术有限公司 应用程序中的消息分发方法及装置
CN109032815A (zh) * 2018-07-18 2018-12-18 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质
CN109144520A (zh) * 2018-09-03 2019-01-04 武汉斗鱼网络科技有限公司 Android中不同对象间的信息交互方法、装置、设备和存储介质
CN109343983A (zh) * 2018-09-30 2019-02-15 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质
CN109857515A (zh) * 2018-12-20 2019-06-07 深圳前海微众银行股份有限公司 桥接通信方法、装置、设备及计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660271B2 (en) * 2005-08-11 2010-02-09 Cisco Technology, Inc. Spanning tree BPDU processing method and system facilitating integration of different native VLAN configurations
US8464281B2 (en) * 2010-08-18 2013-06-11 Sas Institute, Inc. Techniques to remotely access object events
US10394584B2 (en) * 2017-12-18 2019-08-27 Atlassian Pty Ltd Native execution bridge for sandboxed scripting languages

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893161A (zh) * 2015-12-14 2016-08-24 乐视网信息技术(北京)股份有限公司 在软件程序中调用资源的方法和装置
CN106339229A (zh) * 2016-08-31 2017-01-18 虎扑(上海)文化传播股份有限公司 一种针对移动平台的混合开发方法及系统
CN107133064A (zh) * 2017-03-16 2017-09-05 武汉斗鱼网络科技有限公司 原生应用的页面热更新方法及装置
CN107623738A (zh) * 2017-09-28 2018-01-23 中南大学 一种面向安卓应用的WebView桥接口污点映射及分析方法
CN108023808A (zh) * 2017-12-07 2018-05-11 深圳乐信软件技术有限公司 应用程序中的消息分发方法及装置
CN109032815A (zh) * 2018-07-18 2018-12-18 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质
CN109144520A (zh) * 2018-09-03 2019-01-04 武汉斗鱼网络科技有限公司 Android中不同对象间的信息交互方法、装置、设备和存储介质
CN109343983A (zh) * 2018-09-30 2019-02-15 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质
CN109857515A (zh) * 2018-12-20 2019-06-07 深圳前海微众银行股份有限公司 桥接通信方法、装置、设备及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RN与原生交互(二)——数据传递;不變旋律;《https://juejin.cn/post/6844903620236804103》;20180613;全文第1-7页 *

Also Published As

Publication number Publication date
CN112988125A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN109995713B (zh) 一种微服务框架中的服务处理方法及相关设备
US11316683B2 (en) Systems and methods for providing IoT security service using hardware security module
CN113709810B (zh) 一种网络服务质量的配置方法、设备和介质
CN110049503B (zh) 一种获取数据的方法和设备
CN109275042A (zh) 一种弹幕消息的分发方法、装置、终端和存储介质
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN108882053B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN114327710B (zh) 一种函数管理方法、管理装置、终端设备及可读存储介质
CN110704131B (zh) 一种html5应用调用原生应用的方法和装置
CN109388388B (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN113296987B (zh) 调用模块的接口调用方法、装置、计算机设备及存储介质
CN113127775B (zh) 一种页面加载方法、装置、设备和存储介质
CN112988125B (zh) 一种数据桥接方法、装置、设备和存储介质
CN117194068A (zh) 一种跨进程数据传输方法、系统、设备及存储介质
KR102124954B1 (ko) 이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템 및 그 동작 방법
CN109144520B (zh) Android中不同对象间的信息交互方法、装置、设备和存储介质
CN109068170A (zh) 一种弹幕消息的存储方法、装置、终端和存储介质
CN113691575B (zh) 通信方法、装置及系统
CN112380411B (zh) 敏感词处理方法、装置、电子设备、系统及存储介质
CN114567678A (zh) 一种云安全服务的资源调用方法、装置及电子设备
WO2021155529A1 (zh) 资源删除方法、装置、设备及存储介质
CN109117221B (zh) 活动窗口的数据共享方法、装置、设备及存储介质
CN115033315A (zh) 一种页面流程的控制方法、装置、电子设备和存储介质
CN113568720A (zh) 进程管理、开发、配置方法、装置、电子设备和存储介质
CN112748952A (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
TA01 Transfer of patent application right

Effective date of registration: 20230807

Address after: Units A and C, 22/F, No. 109 Tiyu West Road, Tianhe District, Guangzhou City, Guangdong Province, 510000

Applicant after: GUANGDONG MC. SCIENCE AND TECHNOLOGY CO.,LTD.

Address before: 430070 room 007, A301, third floor, building B1, software industry phase 4.1, No. 1, Software Park East Road, Donghu New Technology Development Zone, Wuhan City, Hubei Province (Wuhan area of free trade zone)

Applicant before: WUHAN DOUYU YULE NETWORK TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant