买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】应用发布方法、装置及计算机可读存储介质_康键信息技术(深圳)有限公司_201810546880.0 

申请/专利权人:康键信息技术(深圳)有限公司

申请日:2018-05-31

公开(公告)日:2024-04-02

公开(公告)号:CN108762767B

主分类号:G06F8/51

分类号:G06F8/51;G06F8/61;G06F8/71

优先权:

专利状态码:有效-授权

法律状态:2024.04.02#授权;2020.05.01#实质审查的生效;2018.11.06#公开

摘要:本发明公开了一种应用发布方法,该方法包括:接收用户终端上传的ReactNative代码;基于预设组件库将ReactNative代码转译为React代码,其中,预设组件库中存储有ReactNative组件,以及与ReactNative组件具有相同应用程序接口和功能的React组件;获取第一配置信息,根据第一配置信息从预设组件库中获取附加代码,将附加代码添加到React代码中;将ReactNative代码打包为原生版本的应用程序包,将React代码打包为web版本的应用程序包;分别将原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。本发明还提出一种应用发布装置以及一种计算机可读存储介质。本发明解决了开发多平台应用时浪费开发资源且开发成本高的技术问题。

主权项:1.一种应用发布方法,其特征在于,所述方法包括:接收用户终端上传的ReactNative代码;基于预设组件库将所述ReactNative代码转译为React代码,包括对所述ReactNative代码进行解析,查找所述ReactNative代码中的ReactNative组件,基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;将预先设置好的附加代码添加至所述组件库的附加目录中,获取第一配置信息,根据第一配置信息从所述附加目录中获取所述附加代码,将所述附加代码添加到所述React代码中,所述附加代码包括前端路由和webpack打包代码;通过调用ReactNative代码对应于ios平台或者安卓平台的ReactNative原生打包命令,将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包;分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。

全文数据:应用发布方法、装置及计算机可读存储介质技术领域[0001]本发明涉及计算机技术领域,尤其涉及一种应用发布方法、装置及计算机可读存储介质。背景技术[0002]ReactNative是facebook公司推出的一种基于javascript的开源框架,ReactNative结合了web应用和native应用的优势,可以在ios和android上共用,因此可以使用javascript来开发ios和android原生应用,但是无法直接用来开发web应用。当一个应用需要在不同的平台发布时,就需要开发适用于不同平台的应用程序包,而平台的差异意味着开发人员需要具备不同的开发技能。如果一个应用需要发布ios、android和web三个版本,则软件公司可以为ios和android平台配备掌握ReactNative技术的开发人员,同时需要为web版本的开发配备另外的开发人员,导致浪费开发资源,且开发成本高。发明内容[0003]本发明提供一种应用发布方法、装置及计算机可读存储介质,其主要目的在于解决开发多平台应用时浪费开发资源且开发成本高的技术问题。[0004]为实现上述目的,本发明还提供一种应用发布方法,该方法包括:[0005]接收用户终端上传的ReactNative代码;[0006]基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;[0007]获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中;[0008]将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包;[0009]分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。[0010]可选地,所述基于预设组件库将所述ReactNative代码转译为React代码的步骤包括:[0011]对所述ReactNative代码进行解析,查找所述ReactNative代码中的ReactNative组件;[0012]基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件。[0013]可选地,所述基于预设组件库将所述ReactNative代码转译为React代码的步骤之前,所述方法还包括步骤:[0014]获取初始组件库,所述初始组件库中包含有原生组件目录和web组件目录,其中所述原生组件目录下的路径中存储有ReactNative组件,所述web组件目录中存储有与原生组件目录下的ReactNative组件具有相同应用程序接口和功能的React组件;[0015]获取第三方组件和自定义组件的原生版本和web版本,并按照初始组件库的目录分布方式添加至预设组件库中;[0016]在所述预设组件库中创建附加目录,将用户上传的附加代码存储至所述附加目录中。[0017]可选地,所述基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件的步骤包括:[0018]确定查找到的ReactNative组件在所述预设组件库中的原生组件目录下的存储路径;[0019]根据所述存储路径在所述预设组件库中的web目录下查找与所述ReactNative组件具有相同应用程序接口和功能的React组件;[0020]将所述ReactNative代码中的ReactNative组件替换为查找到的React组件。[0021]可选地,所述附加代码包括前端路由和webpack打包代码。[0022]此外,为实现上述目的,本发明还提供一种应用发布装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的应用发布程序,所述应用发布程序被所述处理器执行时实现如下步骤:[0023]接收用户终端上传的ReactNative代码;[0024]基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;[0025]获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中;[0026]将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包;[0027]分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。[0028]可选地,所述基于预设组件库将所述ReactNative代码转译为React代码的步骤包括:[0029]对所述ReactNative代码进行解析,查找所述ReactNative代码中的ReactNative组件;[0030]基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件。[0031]可选地,所述应用发布程序还可被所述处理器执行,以在所述基于预设组件库将所述ReactNative代码转译为React代码的步骤之前,还实现如下步骤:[0032]获取初始组件库,所述初始组件库中包含有原生组件目录和web组件目录,其中所述原生组件目录下的路径中存储有ReactNative组件,所述web组件目录中存储有与原生组件目录下的ReactNative组件具有相同应用程序接口和功能的React组件;[0033]获取第三方组件和自定义组件的原生版本和web版本,并按照初始组件库的目录分布万式添加至预设组件库中;[0034]在所述预设组件库中创建附加目录,将用户上传的附加代码存储至所述附加目录中。[0035]可选地,所述基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件的步骤包括:[0036]确定查找到的ReactNative组件在所述预设组件库中的原生组件目录下的存储路径;[0037]根据所述存储路径在所述预设组件库中的web目录下查找与所述ReactNativdi件具有相同应用程序接口和功能的React组件;[0038]将所述ReactNative代码中的ReactNative组件替换为查找到的React组件。[0039]此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有应用发布程序,所述应用发布程序可被一个或者多个处理器执行,以实现如上所述的应用发布方法的步骤。[0040]本发明提出的应用发布方法、装置及计算机可读存储介质,本实施例提出的应用发布方法,接收用户终端上传的ReactNative代码;基于预设组件库将ReactNative代码转译为React代码,其中,预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;获取第一配置信息,根据第一配置信息从预设组件库中获取附加代码,将附加代码添加到React代码中;将ReactNative代码打包为原生版本的应用程序包,将React代码打包为web版本的应用程序包;分别将原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。通过上述方案,开发人员只需要基于ReactNative技术开发一次ReactNative代码即可,发布装置基于预设组件库将ReactNative代码转译为React代码,并根据第一配置信息为其添加附加代码;可以直接将上述React代码打包为web版本的应用程序包,不需要配备另外的开发人员开发web版本的应用,节省开发资源并降低开发成本。附图说明[0041]图1为本发明一实施例提供的应用发布方法的流程示意图;[0042]图2为本发明一实施例提供的应用发布装置的内部结构示意图;[0043]图3为本发明一实施例提供的应用发布装置中应用发布程序的模块示意图。[0044]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0045]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0046]本发明提供一种应用发布方法。参照图1所示,为本发明一实施例提供的应用发布方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和或硬件实现。[0047]在本实施例中,应用发布方法包括:[0048]步骤S10,接收用户终端上传的ReactNative代码。[0049]步骤S20,基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件。[0050]在发布装置上预先配置好组件库,基于该组件库将ReactNative代码转译为React代码。其中,预设组件库的配置步骤如下:[0051]获取依赖于RNWReact-Native_Web的初始组件库,初始组件库中包含有原生组件目录和web组件目录,其中原生组件目录下的路径中存储有ReactNative组件,web组件目录中存储有与原生组件目录下的ReactNative组件具有相同应用程序接口和功能的React组件,并且ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件分别在原生组件目录和web组件目录中具有相同的存储路径;获取第三方组件和自定义组件的原生版本和web版本,并将获取的第三方组件和自定义组件的原生版本和web版本按照初始组件库的目录分布方式添加至预设组件库中;在预设组件库中创建附加目录,将用户上传的附加代码存储至附加目录中,其中,附加代码为编译web版软件所需要的额外信息,例如前端路由、webpack打包代码等。ReactNative代码适用于iOS平台和安卓平台,React代码适用于WEB平台。[0052]开发人员开发完成ReactNative代码后将其上传至发布装置,发布装置存储ReactNative代码,并在接收到转译命令时,获取上述ReactNative代码,通过webpack工具对上传的ReactNative代码进行解析,并基于上述预设组件库对ReactNative代码进行转译。[0053]步骤S20具体地包括如下步骤:[0054]对所述ReactNative代码进行解析,查找所述ReactNative代码中的ReactNative组件;基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件。[0055]由于ReactNative是一种组件化的框架,因此,在本实施例中,以组件作为最小粒度对ReactNative代码进行转译。具体地,确定查找到的ReactNative组件在预设组件库中的原生组件目录下的存储路径;根据存储路径在所述预设组件库中的web目录下查找与所述ReactNative组件具有相同应用程序接口和功能的React组件;将ReactNative代码中的ReactNative组件替换为查找到的React组件。按照这种方式,当ReactNative代码中的全部ReactNative组件均替换为查找到的React组件时,完成ReactNative代码的转译。存储转译得到的React代码。[0056]步骤S3〇,获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中。[0057]对于web版的应用来说,需要使用webpack工具对代码进行打包,因此需要在代码中加入webpack打包代码;此外,还需要对web版的前端路由进行设置。因此预先设置好这些附加代码并将其添加至预设组件库的附加目录中。在转译得到React代码后,从附加目录中获取上述附加代码并添加至React代码中。[0058]步骤S40,将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包。[0059]步骤S50,分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。[0060]在对代码进行打包之前,预先配置好三条任务线路分别用于三个平台的代码打包任务的执行。其中,对于将ReactNative代码,将其打包为适用于ios平台和安卓平台的应用包,ReactNative技术中已经有对应的打包方案,在打包时,分别直接调用对应于ios平台或者安卓平台ReactNative原生打包命令,并执行这些打包命令生成ios平台或者安卓平台的应用程序包,因此不需要使用额外的打包工具。web代码的打包基于代码中的webpack打包工具实现。[0061]在将各个平台对应的代码打包为应用程序包之后,将打包得到的各个平台的应用程序包发送到与各个平台对应的应用服务器,同时生成各个平台的应用版本号存储至热更新数据库。在用户打开客户端应用时,比较应用版本号,如果远程的应用服务器有更新的版本,则从应用服务器处下载最新版本的应用程序包替换本地已经下载的版本,实现热更新。此处如果用户已经进入对应的应用内,则提示用户手动升级。针对web端用户的访问,由于用户的访问是基于URL实现的,则直接可以通过服务器更新,无需下载程序包。[0062]此外,可以理解的是,本实施例中的应用程序包可以只是针对一个应用中的业务项目,或者说是功能模块,例如,微信中的朋友圈功能即为微信的一个业务项目。即用户上传的ReactNative代码只是对一个应用中的一个业务项目的更新。发布的应用程序包只是针对这个业务项目,则在用户打开客户端应用时,从服务器处获取应用程序包对应用中对应的业务项目进行热更新。[0063]本实施例提出的应用发布方法,接收用户终端上传的ReactNative代码;基于预设组件库将ReactNative代码转译为React代码,其中,预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;获取第一配置信息,根据第一配置信息从预设组件库中获取附加代码,将附加代码添加到React代码中;将ReactNative代码打包为原生版本的应用程序包,将React代码打包为web版本的应用程序包;分别将原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。通过上述方案,开发人员只需要基于ReactNative技术开发一次ReactNative代码即可,发布装置基于预设组件库将ReactNative代码转译为React代码,并根据第一配置信息为其添加附加代码;可以直接将上述React代码打包为web版本的应用程序包,不需要配备另外的开发人员开发web版本的应用,节省开发资源并降低开发成本。[0064]本发明还提供一种应用发布装置。参照图2所示,为本发明一实施例提供的应用发布装置的内部结构示意图。[0065]在本实施例中,应用发布装置1可以是PCPersonalComputer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该应用发布装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。[0066]其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是应用发布装置1的内部存储单元,例如该应用发布装置1的硬盘。存储器11在另一些实施例中也可以是应用发布装置1的外部存储设备,例如应用发布装置1上配备的插接式硬盘,智能存储卡SmartMediaCard,SMC,安全数字SecureDigital,SD卡,闪存卡FlashCard等。进一步地,存储器11还可以既包括应用发布装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于应用发布装置1的应用软件及各类数据,例如应用发布程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。[0067]处理器12在一些实施例中可以是一中央处理器(CentralProcessingUnit,CPU、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行应用发布程序01等。[0068]通信总线13用于实现这些组件之间的连接通信。[0069]网络接口14可选的可以包括标准的有线接口、无线接口(如WI-H接口),通常用于在该装置1与其他电子设备之间建立通信连接。[0070]可选地,该装置1还可以包括用户接口,用户接口可以包括显示器Display、输入单元比如键盘Keyboard,可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及〇LEDOrganicLight-EmittingDiode,有机发光二极管触摸器等。其中,显亦器也可以适当的称为显示屏或显示单元,用于显示在应用发布装置1中处理的信息以及用于显示可视化的用户界面。[0071]图2仅示出了具有组件11-14以及应用发布程序01的应用发布装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对应用发布装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。[0072]在图2所示的装置1实施例中,存储器11中存储有应用发布程序01;处理器I2执行存储器11中存储的应用发布程序01时实现如下步骤:[0073]接收用户终端上传的ReactNative代码。[0074]基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件。[0075]在发布装置上预先配置好组件库,基于该组件库将ReactNative代码转译为React代码。其中,预设组件库的配置步骤如下:[0076]获取依赖于RNWReact-Native-Web的初始组件库,初始组件库中包含有原生组件目录和web组件目录,其中原生组件目录下的路径中存储有ReactNative组件,web组件目录中存储有与原生组件目录下的ReactNative组件具有相同应用程序接口和功能的React组件,并且ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件分别在原生组件目录和web组件目录中具有相同的存储路径;获取第三方组件和自定义组件的原生版本和web版本,并将获取的第三方组件和自定义组件的原生版本和web版本按照初始组件库的目录分布方式添加至预设组件库中;在预设组件库中创建附加目录,将用户上传的附加代码存储至附加目录中,其中,附加代码为编译web版软件所需要的额外信息,例如前端路由、webpack打包代码等。ReactNative代码适用于iOS平台和安卓平台,React代码适用于WEB平台。[0077]开发人员开发完成ReactNative代码后将其上传至发布装置,发布装置存储ReactNative代码,并在接收到转译命令时,获取上述ReactNative代码,通过webpack工具对上传的ReactNative代码进行解析,并基于上述预设组件库对ReactNative代码进行转译。[0078]具体地,基于预设组件库将所述ReactNative代码转译为React代码的步骤可以包括如下细化步骤:[0079]对所述ReactNative代码进行解析,查找所述ReactNative代码中的ReactNative组件;基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件。[0080]由于ReactNative是一种组件化的框架,因此,在本实施例中,以组件作为最小粒度对ReactNative代码进行转译。具体地,确定查找到的ReactNative组件在预设组件库中的原生组件目录下的存储路径;根据存储路径在所述预设组件库中的web目录下查找与所述ReactNative组件具有相同应用程序接口和功能的React组件;将ReactNative代码中的ReactNative组件替换为查找到的React组件。按照这种方式,当ReactNative代码中的全部ReactNative组件均替换为查找到的React组件时,完成ReactNative代码的转译。存储转译得到的React代码。[0081]获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中。[0082]对于web版的应用来说,需要使用webpack工具对代码进行打包,因此需要在代码中加入webpack打包代码;此外,还需要对web版的前端路由进行设置。因此预先设置好这些附加代码并将其添加至预设组件库的附加目录中。在转译得到React代码后,从附加目录中获取上述附加代码并添加至React代码中。[0083]将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包。[0084]分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。[0085]在对代码进行打包之前,预先配置好三条任务线路分别用于三个平台的代码打包任务的执行。其中,对于将ReactNative代码,将其打包为适用于ios平台和安卓平台的应用包,ReactNative技术中已经有对应的打包方案,在打包时,分别直接调用对应于ios平台或者安卓平台ReactNative原生打包命令,并执行这些打包命令生成ios平台或者安卓平台的应用程序包,因此不需要使用额外的打包工具。web代码的打包基于代码中的webpack打包工具实现。[0086]在将各个平台对应的代码打包为应用程序包之后,将打包得到的各个平台的应用程序包发送到与各个平台对应的应用服务器,同时生成各个平台的应用版本号存储至热更新数据库。在用户打开客户端应用时,比较应用版本号,如果远程的应用服务器有更新的版本,则从应用服务器处下载最新版本的应用程序包替换本地已经下载的版本,实现热更新。此处如果用户已经进入对应的应用内,则提示用户手动升级。针对web端用户的访问,由于用户的访问是基于URL实现的,则直接可以通过服务器更新,无需下载程序包。[0087]此外,可以理解的是,本实施例中的应用程序包可以只是针对一个应用中的业务项目,或者说是功能模块,例如,微信中的朋友圈功能即为微信的一个业务项目。即用户上传的ReactNative代码只是对一个应用中的一个业务项目的更新。发布的应用程序包只是针对这个业务项目,则在用户打开客户端应用时,从服务器处获取应用程序包对应用中对应的业务项目进行热更新。[0088]本实施例提出的应用发布装置,接收用户终端上传的ReactNative代码;基于预设组件库将ReactNative代码转译为React代码,其中,预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;获取第一配置信息,根据第一配置信息从预设组件库中获取附加代码,将附加代码添加到React代码中;将ReactNative代码打包为原生版本的应用程序包,将React代码打包为web版本的应用程序包;分别将原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。通过上述方案,开发人员只需要基于ReactNative技术开发一次ReactNative代码即可,发布装置基于预设组件库将ReactNative代码转译为React代码,并根据第一配置信息为其添加附加代码;可以直接将上述React代码打包为web版本的应用程序包,不需要配备另外的开发人员开发web版本的应用,节省开发资源并降低开发成本。[0089]可选地,在其他的实施例中,应用发布程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器本实施例为处理器12所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述应用发布程序在应用发布装置中的执行过程。[0090]例如,参照图3所示,为本发明应用发布装置一实施例中的应用发布程序的程序模块示意图,该实施例中,应用发布程序可以被分割为代码接收模块10、代码转译模块20、代码添加模块30、应用打包模块40和数据发送模块50,示例性地:[0091]代码接收模块10用于:接收用户终端上传的ReactNative代码;[0092]代码转译模块2〇用于:基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;[0093]代码添加模块30用于:获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中;[0094]应用打包模块40用于:将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包;[0095]数据发送模块5〇用于:分别将所述原生版本的应用程序包和财13版本的应用程序包发送至对应的应用服务器。[0096]上述代码接收模块10、代码转译模块20、代码添加模块3〇、应用打包模块40和数据发送模块50等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。[0097]此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有应用发布程序,所述应用发布程序可被一个或多个处理器执行,以实现如下操作:[0098]接收用户终端上传的ReactNative代码;[00"]基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;[0100]获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中;[0101]将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包;[0102]分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。[0103]本发明计算机可读存储介质具体实施方式与上述应用发布装置和方法各实施例基本相同,在此不作累述。[0104]需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。[0105]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROMRAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备可以是手机,计算机,服务器,或者网络设备等执行本发明各个实施例所述的方法。[0106]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

权利要求:1.一种应用发布方法,其特征在于,所述方法包括:接收用户终端上传的ReactNative代码;基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中;将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包;分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。2.如权利要求1所述的应用发布方法,其特征在于,所述基于预设组件库将所述ReactNative代码转译为React代码的步骤包括:对所述ReactNative代码进行解析,查找所述ReactNative代码中的ReactNative组件;基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件。3.如权利要求1所述的应用发布方法,其特征在于,所述基于预设组件库将所述ReactNative代码转译为React代码的步骤之前,所述方法还包括步骤:获取初始组件库,所述初始组件库中包含有原生组件目录和web组件目录,其中所述原生组件目录下的路径中存储有ReactNative组件,所述web组件目录中存储有与原生组件目录下的ReactNative组件具有相同应用程序接口和功能的React组件;获取第三方组件和自定义组件的原生版本和web版本,并按照初始组件库的目录分布方式添加至预设组件库中;在所述预设组件库中创建附加目录,将用户上传的附加代码存储至所述附加目录中。4.如权利要求3所述的应用发布方法,其特征在于,所述基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件的步骤包括:确定查找到的ReactNative组件在所述预设组件库中的原生组件目录下的存储路径;根据所述存储路径在所述预设组件库中的web目录下查找与所述ReactNative组件具有相同应用程序接口和功能的React组件;将所述ReactNative代码中的ReactNative组件替换为查找到的React组件。5.如权利要求1至4中任一项所述的应用发布方法,其特征在于,所述附加代码包括前端路由和webpack打包代码。6.—种应用发布装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的应用发布程序,所述应用发布程序被所述处理器执行时实现如下步骤:接收用户终端上传的ReactNative代码;基于预设组件库将所述ReactNative代码转译为React代码,其中,所述预设组件库中存储有ReactNative组件,以及与所述ReactNative组件具有相同应用程序接口和功能的React组件;获取第一配置信息,根据第一配置信息从所述预设组件库中获取附加代码,将所述附加代码添加到所述React代码中;将所述ReactNative代码打包为原生版本的应用程序包,将所述React代码打包为web版本的应用程序包;分别将所述原生版本的应用程序包和web版本的应用程序包发送至对应的应用服务器。7.如权利要求6所述的应用发布装置,其特征在于,所述基于预设组件库将所述ReactNative代码转译为React代码的步骤包括:对所述ReactNative代码进行解析,查找所述ReactNative代码中的ReactNative组件;基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件。8.如权利要求6所述的应用发布装置,其特征在于,所述应用发布程序还可被所述处理器执行,以在所述基于预设组件库将所述ReactNative代码转译为React代码的步骤之前,还实现如下步骤:获取初始组件库,所述初始组件库中包含有原生组件目录和web组件目录,其中所述原生组件目录下的路径中存储有ReactNative组件,所述web组件目录中存储有与原生组件目录下的ReactNative组件具有相同应用程序接口和功能的React组件;获取第三方组件和自定义组件的原生版本和web版本,并按照初始组件库的目录分布方式添加至预设组件库中;在所述预设组件库中创建附加目录,将用户上传的附加代码存储至所述附加目录中。9.如权利要求8所述的应用发布装置,其特征在于,所述基于所述预设组件库将查找的ReactNative组件替换为具有相同应用程序接口和功能的React组件的步骤包括:确定查找到的ReactNative组件在所述预设组件库中的原生组件目录下的存储路径;根据所述存储路径在所述预设组件库中的web目录下查找与所述ReactNative组件具有相同应用程序接口和功能的React组件;将所述ReactNative代码中的ReactNative组件替换为查找到的React组件。10.—种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用发布程序,所述应用发布程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的应用发布方法的步骤。

百度查询: 康键信息技术(深圳)有限公司 应用发布方法、装置及计算机可读存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。