一种在React Native组件之间传递native对象的方法和装置制造方法及图纸

技术编号:15638788 阅读:46 留言:0更新日期:2017-06-15 19:26
本发明专利技术提出了一种在React Native组件之间传递native对象的方法和装置。该在React Native组件之间传递native对象的方法,包括:内存数据管理模块将第一React Native组件的待装箱的native对象封装为通用类型的装箱对象;第一React Native组件发送所述装箱对象至javascript业务逻辑模块;第二React Native组件接收所述javascript业务逻辑模块转发的所述装箱对象;所述内存数据管理模块对所述装箱对象进行拆箱操作后得到所述native对象,通过javascript传递任一类型的native对象。

【技术实现步骤摘要】
一种在ReactNative组件之间传递native对象的方法和装置
本专利技术涉及ReactNative
,尤其涉及一种在ReactNative组件之间传递native对象的方法和装置。
技术介绍
ReactNative是一种允许开发者使用前端语言搭建原生App的技术,其原理是对原生UI组件进行封装,达到使用javascript调配原生UI组件构建界面的目的。搭建的原生App同时具有webApp的灵活性,并且具有良好交互体验的优点。在利用ReactNative进行实际开发中,经常需要在ReactNative的组件/API之间通过javascript传递数据,即其中一个ReactNative的组件/API发送数据至javascript,javascript经过业务处理后将数据发送至另一个ReactNative组件/API来使用。数据的通用类型为整型、浮点型、字符串、数组、字典等,上述类型的数据可以直接在javascript和ReactNative组件/API之间传递。但是,ReactNative框架无法将某些特殊的native对象如image对象、自定义的model等转换成javascript可识别的对象,只能将native对象的内存地址当作16进制数或字符串来处理;另一个问题是在对象交给javascript后,native对象的生命周期如何管理。因此,需要一种在ReactNative组件之间传递native对象的方法和装置,以解决现有技术中存在的上述技术问题。
技术实现思路
本专利技术提供一种在ReactNative组件之间传递native对象的方法和装置,通过javascript传递任一类型的native对象。本专利技术采用的技术方案是:一种在ReactNative组件之间传递native对象的方法,包括:内存数据管理模块将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象;第一ReactNative组件发送所述装箱对象至javascript业务逻辑模块;第二ReactNative组件接收所述javascript业务逻辑模块转发的所述装箱对象;所述内存数据管理模块对所述装箱对象进行拆箱操作后得到所述native对象。优选地,所述内存数据管理模块将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象之后,所述方法,还包括:保存所述待装箱的native对象的强引用。优选地,所述保存所述待装箱的native对象的强引用之后,所述方法,还包括:所述javascript业务逻辑模块发送释放指令至内存数据管理组件;所述内存数据管理组件基于所述释放指令调用所述内存数据管理模块的移除引用接口移除所述待装箱的native对象的强引用。优选地,所述内存数据管理模块将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象之前,所述方法,还包括:所述第一ReactNative组件调用所述内存数据管理模块的装箱方法;相应地,所述内存数据管理模块对所述装箱对象进行拆箱操作后得到所述native对象之前,所述方法,还包括:所述第二ReactNative组件调用所述内存数据管理模块的拆箱方法。本专利技术还提供了一种在ReactNative组件之间传递native对象的装置,包括:内存数据管理模块,用于将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象;第一ReactNative组件,用于发送所述装箱对象至javascript业务逻辑模块;第二ReactNative组件,用于接收所述javascript业务逻辑模块转发的所述装箱对象;所述内存数据管理模块,还用于对所述装箱对象进行拆箱操作后得到所述native对象。优选地,所述数据管理保存模块,还用于:保存所述待装箱的native对象的强引用。优选地,所述装置,还包括,内存数据管理组件,用于:所述javascript业务逻辑模块发送释放指令至所述内存数据管理组件的条件下,所述内存数据管理组件基于所述释放指令调用所述内存数据管理模块的移除引用接口移除所述待装箱的native对象的强引用。优选地,所述第一ReactNative组件,还用于:在所述内存数据管理模块将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象之前,调用所述内存数据管理模块的装箱方法;相应地,所述第二ReactNative组件,还用于:在所述内存数据管理模块对所述装箱对象进行拆箱操作后得到所述native对象之前,所述第二ReactNative组件调用所述内存数据管理模块的拆箱方法。采用上述技术方案,本专利技术至少具有下列效果:采用本专利技术的在ReactNative组件之间传递native对象的方法,通过javascript传递任一类型的native对象。附图说明图1为本专利技术第一实施例在ReactNative组件之间传递native对象的方法的流程图;图2为本专利技术第二实施例在ReactNative组件之间传递native对象的方法的流程图;图3为本专利技术第四实施例在ReactNative组件之间传递native对象的装置中内存数据管理模块的方框图。具体实施方式为更进一步阐述本专利技术为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本专利技术进行详细说明如后。本专利技术提供的在ReactNative组件之间传递native对象的方法,可以通过javascript传递任一类型的native对象。下面将详细地描述本专利技术的在ReactNative组件之间传递native对象的方法及其各个步骤。其中,ReactNative为facebook推出的一项使用javascript和react构建原生app的技术。需要说明的是,本专利技术所涉及的native对象,均是现有技术中javascript无法使用的native对象。在ReactNative中,这些native对象由某一个ReactNative组件或ReactNative接口产生,经由javascript传递给另外的ReactNative组件或者ReactNative接口进行使用,Javascript本身不使用这些ReactNative对象。第一实施例如图1和图2所示,本实施例公开的在ReactNative组件之间传递native对象的方法,包括:步骤S2:内存数据管理模块将第一ReactNative组件(如图2中的ReactNative组件A)的待装箱的native对象封装为通用类型的装箱对象;步骤S4:第一ReactNative组件发送装箱对象至javascript业务逻辑模块;步骤S5:第二ReactNative组件(如图2中的reactnative组件B)接收javascript业务逻辑模块转发的装箱对象;步骤S6:内存数据管理模块对装箱对象进行拆箱操作后得到native对象。本实施例通过在native端封装内存数据管理模块来实现待装箱的native对象的封装和拆箱操作,实现javascript业务逻辑模块不能识别的native对象的传递。Javascript业务逻辑模块,由前端开发者使用javascript进行业务开发的逻辑,它依本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201611234768.html" title="一种在React Native组件之间传递native对象的方法和装置原文来自X技术">在React Native组件之间传递native对象的方法和装置</a>

【技术保护点】
一种在React Native组件之间传递native对象的方法,其特征在于,包括:内存数据管理模块将第一React Native组件的待装箱的native对象封装为通用类型的装箱对象;第一React Native组件发送所述装箱对象至javascript业务逻辑模块;第二React Native组件接收所述javascript业务逻辑模块转发的所述装箱对象;所述内存数据管理模块对所述装箱对象进行拆箱操作后得到所述native对象。

【技术特征摘要】
1.一种在ReactNative组件之间传递native对象的方法,其特征在于,包括:内存数据管理模块将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象;第一ReactNative组件发送所述装箱对象至javascript业务逻辑模块;第二ReactNative组件接收所述javascript业务逻辑模块转发的所述装箱对象;所述内存数据管理模块对所述装箱对象进行拆箱操作后得到所述native对象。2.根据权利要求1所述的方法,其特征在于,所述内存数据管理模块将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象之后,所述方法,还包括:保存所述待装箱的native对象的强引用。3.根据权利要求2所述的方法,其特征在于,所述保存所述待装箱的native对象的强引用之后,所述方法,还包括:所述javascript业务逻辑模块发送释放指令至内存数据管理组件;所述内存数据管理组件基于所述释放指令调用所述内存数据管理模块的移除引用接口移除所述待装箱的native对象的强引用。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述内存数据管理模块将第一ReactNative组件的待装箱的native对象封装为通用类型的装箱对象之前,所述方法,还包括:所述第一ReactNative组件调用所述内存数据管理模块的装箱方法;相应地,所述内存数据管理模块对所述装箱对象进行拆箱操作后得到所述native对象之前,所述方法,还包括:所述第二ReactNative组件...

【专利技术属性】
技术研发人员:杜艳新
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1