CN108536486A - Rn小程序的加载方法及装置 - Google Patents
Rn小程序的加载方法及装置 Download PDFInfo
- Publication number
- CN108536486A CN108536486A CN201810308567.3A CN201810308567A CN108536486A CN 108536486 A CN108536486 A CN 108536486A CN 201810308567 A CN201810308567 A CN 201810308567A CN 108536486 A CN108536486 A CN 108536486A
- Authority
- CN
- China
- Prior art keywords
- small routines
- distal end
- small
- routines
- local
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种RN小程序的加载方法及装置,涉及网络领域,能够缓解现有的H5小程序存在用户体验差的问题,改善用户体验度。该方法包括生成步骤:采用原生代码构造第一访问请求,第一访问请求携带有入参参数,入参参数包括RN小程序的code标识符;发送步骤:将第一访问请求发送至服务器以获取远端RN小程序的基本信息;接收步骤:接收服务器返回的远端RN小程序的基本信息;判断步骤:判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致;若否,则执行更新步骤;若是,则执行加载步骤;更新步骤:对本地缓存的本地RN小程序进行更新;更新完成后执行加载步骤;加载步骤:启动RN框架加载远端RN小程序。
Description
技术领域
本发明涉及网络技术领域,尤其是涉及一种RN小程序的加载方法及装置。
背景技术
传统的小程序是基于H5开发,此类小程序在加载时运行速度慢,耗费网速,稳定性较差,导致用户体验不高。
综上所述,现有的H5小程序存在用户体验较差的问题。
发明内容
有鉴于此,本发明的目的在于提供一种RN小程序的加载方法及装置,以缓解现有的H5小程序存在用户体验较差的问题,能够改善用户体验度。
第一方面,本发明实施例提供了一种RN小程序的加载方法,应用于移动终端,该RN小程序的加载方法包括:
生成步骤:采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数,所述入参参数包括RN小程序的code标识符;
发送步骤:将第一访问请求发送至服务器以获取远端RN小程序的基本信息;
接收步骤:接收服务器返回的远端RN小程序的基本信息;
判断步骤:判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致;
若否,则执行更新步骤;
更新步骤:对本地缓存的本地RN小程序进行更新;更新完成后执行加载步骤;
若是,则执行加载步骤;
加载步骤:启动RN框架加载远端RN小程序。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述更新步骤,具体包括:
移动终端通过原生的版本更新组件对本地缓存的本地RN小程序进行更新,获取远端RN小程序的源代码。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述移动终端通过原生的版本更新组件对本地缓存的本地RN小程序进行更新,获取远端RN小程序的源代码,具体包括:
移动终端构造第二访问请求以从服务器下载远端的RN小程序的源代码压缩文件;
移动终端下载完毕后,移动终端对远端的RN小程序的源代码压缩文件进行解压,得到RN小程序的源代码,并将RN小程序的源代码存放至移动终端的本地空间。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,在所述发送步骤之前,还包括:
加密步骤:利用加密算法对第一访问请求进行加密。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述加密步骤,具体包括:
对所述第一访问请求的API请求参数,根据参数名称的ASCII码表的顺序排序;
将排序好的参数名和参数值进行拼装,生成字符串;
把拼装好的字符串进行编码,生成字节流;
使用签名算法对编码后的字节流进行摘要,得到字节流结果;
将摘要得到的字节流结果转换为十六进制字符,完成加密。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述加载步骤,具体包括:
对所述RN加载器进行扩展,以使所述RN加载器能够加载缓存;
使用扩展后的RN加载器加载远端RN小程序的源代码。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,该方法还包括:
显示步骤:根据加载的远端RN小程序,生成RN小程序页面;将所述RN小程序页面输出。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述判断步骤,具体包括:
将远端RN小程序的远端版本号和远端文件签名分别与本地缓存的本地RN小程序的本地版本号和本地文件签名进行比较,生成判断结果。
第二方面,本发明实施例还提供一种RN小程序的加载装置,包括:
生成模块,用于采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数,所述入参参数包括RN小程序的code标识符;
发送模块,用于将第一访问请求发送至服务器以获取远端RN小程序的基本信息;
接收模块,用于接收服务器返回的远端RN小程序的基本信息;
判断模块,用于判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致;
若否,则由更新模块执行更新;若是,则由加载模块执行加载;
更新模块,用于对本地缓存的RN小程序进行更新;更新完成后由加载模块执行加载;
加载模块,用于启动RN框架加载远端RN小程序。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,该装置还包括:
加密模块,用于利用加密算法对所述第一访问请求进行加密。
第三方面,本发明实施例还提供一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的RN小程序的加载方法中,包括生成步骤:采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数,所述入参参数包括RN小程序的code标识符;发送步骤:将第一访问请求发送至服务器以获取远端RN小程序的基本信息;接收步骤:接收服务器返回的远端RN小程序的基本信息;判断步骤:判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致;若否,则执行更新步骤;更新步骤:对本地缓存的本地RN小程序进行更新;更新完成后执行加载步骤;若是,则执行加载步骤;加载步骤:启动RN框架加载远端RN小程序。因此,本发明实施例提供的技术方案,基于RN技术,能够缓解现有的H5小程序存在用户体验较差的问题,由于该RN小程序是基于原生的底层框架进行的开发,可以提供接近于原生的用户体验和交互效果,改善了用户体验度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的RN小程序的开发流程图;
图2为本发明实施例提供的一种RN小程序的加载方法的流程图;
图3为本发明实施例提供的另一种RN小程序的加载方法的流程图;
图4为图3中步骤S201的详细流程图;
图5为本发明实施例提供的一种RN小程序的加载装置的示意图;
图6为本发明实施例提供的一种RN小程序的加载系统的工作流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前对于商品名称等更新频率高的领域,现有技术难以实现准确的切词,因此难以生成有效的词库。基于此,本发明实施例提供的一种RN小程序的加载方法、装置及电子设备,能够实现准确的切词,并生成有效的词库。
下面结合图1对本发明实施例提供的RN小程序的开发流程作一简要说明:
步骤1.0:移动端框架构建。
具体的,接收原生APP(应用程序)开发人员的框架构建开发指令,进行移动端框架构建,其中,移动端框架构建包括包含安卓、ios两个终端程序的框架构建。
步骤2.0:效果图设计。
具体的,接收UED(User Experience Design,用户体验设计)基于程序功能的界面设计指令,进行界面的设计,该设计依据移动端的界面显示风格,兼容安卓、ios。
步骤2.1:修改基本配置信息。
在一个实施例中,例如图1,接收原生APP开发人员的编辑指令,进行基本配置信息的修改,这里的基本配置信息包括LOGO、欢迎页、启动页或主题色。
需要指出的是,在另一实施例中,接收RN小程序开发人员的编辑指令,进行基本配置信息的修改。
步骤3.0:RN小程序开发。
具体的,接收RN小程序开发人员的嵌入指令,进行RN小程序开发,该RN小程序是基于React Native技术,且能够嵌入在原生框架中的RN小程序。
步骤4.0:ISV申请。
具体的,接收RN小程序开发人员的申请指令,在应用平台发起ISV(IndependentSoftware Vendors,独立软件开发商)注册申请。
步骤5.0:应用注册。
具体的,接收RN小程序开发人员的注册指令,使用ISV进入应用注册页面,将已经开发好的RN小程序,注册成为移动端应用。
步骤6.0:功能点维护。
具体的,接收RN小程序开发人员的维护指令,在应用中维护模块和功能点。
步骤7.0:承租人授权。
具体的,接收RN小程序开发人员的授权指令,开通相应承租人对该应用(原生框架中的RN小程序)的使用权。
步骤8.0:应用上架。
具体的,接收原生APP开发人员的上架指令,进行应用上架。
需要说明的是,该小程序无需向相应的应用市场(或应用平台)发送上架请求,即无需应用市场的上架审核。
本发明实施例开发的RN小程序有效的结合了目前移动端开发技术的所有优势,具有以下优点:
1.有效的对IOS,安卓两种移动终端进行兼容。
2.由于该RN小程序本身是基于原生的底层框架进行的开发,可以提供接近于原生的用户体验和交互效果。
3.代码在本地运行,可以节省带宽成本。
4.由于共用一套代码,共享开发人员,因此开发速度快,成本低。
5.RN小程序可以单独打包发布,迭代周期短,无需审核上架。
下面是本发明与传统的开发方式的比较:
a)传统方式是使用移动端上各手机系统支持的原生语言开发app,开发效率慢,成本高。本发明共用一套代码,共享开发人员,因此开发速度快,成本低。
b)传统的app打包方式是将RN打包成本地代码,需要将整个app进行打包发布。本发明可以用RN将业务功能重(业务功能权重大)的模块进行模块化隔离发布。
c)与RN提供的热更新发明相比,本发明在版本迭代更新的时候只更新RN相关的JavaScript代码。对于稳定性和安全性更有保障。
d)传统的小程序是基于H5开发,用户体验和稳定性和原生的开发的app差距较大。本发明采用基于RN的小程序,使用户体验和稳定性更接近原生语言开发的app。
实施例一:
本发明实施例提供了一种RN小程序的加载方法,该RN小程序是RN小程序是基于React Native技术,且能够嵌入在原生框架中的RN小程序,可对IOS,安卓两种移动终端进行兼容。如图2所示,该RN小程序的加载方法,应用于移动终端,包括:
S101生成步骤:采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数。
其中,所述入参参数包括RN小程序的code标识符。为了保证数据的安全性,上述第一访问请求为https请求。
需要说明的是,入参参数还包括请求时间、数据格式、APP标准等等基本参数。当然,第一访问请求还包括API请求参数。
具体的,移动终端采用原生代码(native code)或者原生编程语言构造https请求(第一访问请求),所述https请求(第一访问请求)包括入参参数。
这里的移动终端包括安卓(Android)系统的移动终端和IOS系统的移动终端,不同的移动终端采用不同的原生代码构造第一访问请求,例如安卓系统采用的是Java语言,IOS系统采用的是Objective-C语言。
S102发送步骤:将所述第一访问请求发送至服务器以获取远端RN小程序的基本信息。
这里的远端RN小程序是指存储在服务器端的请求时刻的最新的RN小程序。这里的远端文件签名主要是指文件的MD5签名。
上述的远端RN小程序的基本信息包括:RN小程序的远端版本号以及远端文件签名。进一步的,远端RN小程序的基本信息还包括RN小程序的远端存放地址。
在具体实现时,移动终端将https请求(第一访问请求)发送至服务器以获取远端RN小程序的基本信息。
服务器根据所述https请求的入参参数中的RN小程序的code标识符发送RN小程序的基本信息至移动终端。
S103接收步骤:接收服务器返回的远端RN小程序的基本信息。
具体的,移动终端接收服务器发送的请求时刻的最新的远端RN小程序的基本信息。
S104判断步骤:判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致。
此处的本地RN小程序的基本信息包括RN小程序的本地版本号和本地文件签名。
移动终端判断请求时刻的最新的远端RN小程序的基本信息与预先在移动终端的本地缓存的缓存RN小程序的基本信息是否一致。
若否,即远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息不一致或者存在差异,则执行S105更新步骤。
若是,即远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息一致或者无差异,则执行S106加载步骤。
具体的,该S104判断步骤通过以下步骤实现:
将远端RN小程序的远端版本号和远端文件签名分别与本地缓存的本地RN小程序的本地版本号和本地文件签名进行比较,生成判断结果。
具体的,移动终端将请求时刻的最新的远端RN小程序的远端版本号和远端文件签名分别与本地缓存的RN小程序的本地版本号和本地文件签名进行比较,生成判断结果,根据不同的判断结果执行更新步骤或者加载步骤的一种。
在一个实施例中,该判断步骤包括:
第一判断步骤:判断请求时刻的最新的远端RN小程序的远端版本号与本地缓存的本地RN小程序的缓存版本号是否一致。
如果否,则执行更新步骤;如果是,则执行第二判断步骤。
第二判断步骤:判断请求时刻的最新的远端RN小程序的远端文件签名与RN小程序的缓存文件签名进行比较,判断两者是否有差异。
当判定是,即有差异,则执行更新步骤;如果否,即无差异,则执行加载步骤。
在另一实施例中,该判断步骤包括:
第一判断步骤:判断请求时刻的最新的远端RN小程序的远端文件签名与RN小程序的缓存文件签名进行比较,判断两者是否有差异。
当判定是,即有差异,则执行更新步骤;如果否,即无差异,则执行第二判断步骤。
第二判断步骤:判断请求时刻的最新的远端RN小程序的远端版本号与本地缓存的本地RN小程序的缓存版本号是否一致。
如果否,则执行更新步骤;如果是,则执行加载步骤。
S105更新步骤:对本地缓存的本地RN小程序进行更新。
具体实现时,移动终端对本地缓存的RN小程序进行更新,得到请求时刻对应的最新的远端RN小程序,并存储在本地;更新完成后执行加载步骤。
在一个实施例中,该步骤S105主要通过以下步骤实现:
移动终端通过原生的版本更新组件移动终端通过原生的版本更新组件对本地缓存的本地RN小程序进行更新,获取远端RN小程序的源代码。
具体的,移动终端通过原生的稳定的版本更新组件对本地缓存的本地RN小程序进行更新,更新得到远端RN小程序的源代码,并存储至本地。
该步骤的具体实现过程如下:
A移动终端构造第二访问请求以从服务器下载远端的RN小程序的源代码压缩文件到本地。
其中,上述的第二访问请求可以是http请求,也可以是https请求,所述远端的RN小程序的源代码压缩文件是通过采用zip的压缩方式进行压缩后并存放在服务器的小程序远端存放地址中。
具体的,移动终端使用原生代码进行版本比较,如版本不一致,则使用http或https请求下载远端的RN小程序的源代码压缩文件到本地(即本地空间)。
B移动终端下载完毕后,移动终端对远端的RN小程序的源代码压缩文件进行解压,得到RN小程序的源代码,并将RN小程序的源代码存放至移动终端的本地空间。
其中,移动终端使用zip的解压方式对远端的RN小程序的源代码压缩文件进行解压。
这里的本地空间包括android的sd卡或ios的沙盒;
进一步的,所述RN小程序的源代码以“App Id/RN App code/版本号/”的命名方式存放。
例如,对于android系统:sdcard/com.xiniunet.xntalk/submit/1.0.2/;对于ios系统:沙盒/com.xiniunet.xntalk/submit/1.0.2/。
上述的com.xiniunet.xntalk为App ID,submit为RN App code。
需要说明的是,该更新步骤在版本迭代更新的时候只更新与RN相关的JavaScript代码,因此对于RN小程序的稳定性和安全性更有保障。
S106加载步骤:启动RN框架加载远端RN小程序。
即使用RN加载器对本地最新的RN小程序进行加载。
在具体实现时,该步骤S106主要包括以下步骤:
a对所述RN加载器进行扩展,以使所述RN加载器能够加载缓存。
具体的,移动终端接收外部的拓展指令,对RN加载器进行扩展以使所述RN加载器能够加载缓存。换句话说,该RN加载器具有加载缓存的功能,能够从缓存里加载RN代码。
通过上述步骤,能够避免多次加载的情况,例如反复从存储器里进行加载,节省了加载时间,提高了加载效率,改善了用户体验度。
b使用扩展后的RN加载器加载远端RN小程序的源代码。
具体的,移动终端使用经过扩展的RN加载器从本地缓存中加载最新的远端RN小程序的源代码。
需要说明的是,首次加载后,移动终端将RN小程序的源代码缓存在内存中,直至进程结束或者有版本更新(例如更新步骤)的情况下才释放。内存里的app代码。
本发明实施例提供的RN小程序的加载方法,包括生成步骤:采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数,所述入参参数包括RN小程序的code标识符;发送步骤:将第一访问请求发送至服务器以获取远端RN小程序的基本信息;接收步骤:接收服务器返回的远端RN小程序的基本信息;判断步骤:判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致;若否,则执行更新步骤;更新步骤:对本地缓存的本地RN小程序进行更新;更新完成后执行加载步骤;若是,则执行加载步骤;加载步骤:启动RN框架加载远端RN小程序。因此,本发明实施例提供的技术方案,基于RN技术,能够缓解现有的H5小程序存在用户体验较差的问题,由于该RN小程序是基于原生的底层框架进行的开发,可以提供接近于原生的用户体验和交互效果,改善了用户体验度。
实施例二:
如图3所示,在实施例一的基础上,本发明实施例提供了另一种RN小程序的加载方法。与实施例一的区别在于,为了进一步提高数据的安全级别,在所述发送步骤之前,该RN小程序的加载方法还包括以下步骤:
S201加密步骤:利用加密算法对所述第一访问请求进行加密。
这里的第一访问请求采用https请求,因此,移动终端利用加密算法对https请求进行加密处理。
在具体实施时,参照图4,该加密步骤主要包括以下步骤:
S2011:对第一访问请求的API请求参数,根据参数名称的ASCII码表的顺序排序。
这里的API请求参包括公共参数和业务参数,但除去sign参数和byte[]类型的参数。
具体的,移动终端对https请求的所有API请求参数,根据参数名称的ASCII码表的顺序排序。
例如:foo=1,bar=2,foo_bar=3,foobar=4排序后的顺序是bar=2,foo=1,foo_bar=3,foobar=4。
S2012:将排序好的参数名和参数值进行拼装,生成字符串。
具体的,移动终端将排序好的参数名和参数值进行拼装,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4,即生成的字符串为bar2foo1foo_bar3foobar4。
S2013:把拼装好的字符串进行编码,生成字节流。
在一个实施例中,移动终端把拼装好的字符串采用utf-8编码,生成字节流。
需要说明的是,上述的UTF-8编码可以通过屏蔽位和移位操作快速读写。字符串比较时strcmp()和wcscmp()的返回结果相同,因此使排序变得更加容易。字节FF和FE在UTF-8编码中永远不会出现,因此他们可以用来表明UTF-16或UTF-32文本(见BOM)UTF-8是字节顺序无关的。它的字节顺序在所有系统中都是一样的,因此它实际上并不需要BOM。
S2014:使用签名算法对编码后的字节流进行摘要,得到字节流结果。
上述签名算法包括MD5算法或HMAC_MD5算法。
具体的,移动终端使用MD5算法或HMAC_MD5算法对编码后的字节流进行摘要,得到字节流结果。
如果使用MD5算法,则需要在拼装的字符串前后加上app的secret后,再进行摘要;还以上面的示例为例进行说明,这时进行摘要后得到的字节流结果为:md5(secret+bar2foo1foo_bar3foobar4+secret)。
如果使用HMAC_MD5算法,则需要用app的secret初始化摘要算法后,再进行摘要。同样以上面的示例,此时进行初始化摘要算法处理后摘要得到的字节流结果为:hmac_md5(bar2foo1foo_bar3foobar4)。
S2015:将摘要得到的字节流结果转换为十六进制字符,完成加密。
具体的,移动终端将摘要得到的字节流结果转换为十六进制字符,即字节流结果是采用十六进制表示的。
例如:hex(“helloworld”.getBytes(“utf-8”))=“68656C6C6F776F726C64”
说明:MD5是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
相应的,在一个实施例中,采用可逆加密方式,即服务器将获取到的https请求(第一访问请求)进行解密,解密完成后,且请求无异常,则返回对应的远端RN小程序的基本信息给移动端。此处的解密为加密的逆过程,为了描述简洁,在此不再赘述。
在另一个实施例中,采用不可逆加密方式,即服务器将https请求(第一访问请求)执行201的加密步骤,验证得到的字节流结果与移动端的字节流结果是否一致,若一致,且请求无异常,则返回对应的远端RN小程序的基本信息给移动端。若不一致,则发出警报信息。该不可逆加密方式提高了数据的安全性。
进一步的,该方法还包括:
S107显示步骤:根据加载的远端RN小程序,生成RN小程序页面;将所述RN小程序页面输出。
具体的,移动终端根据加载的最新的远端RN小程序的源代码,生成RN小程序页面;并将所述RN小程序页面输出,向用户展示。
这里的RN小程序页面设置有功能组件,该功能组件包括拍照、定位、蓝牙功能等等。
实施例三:
如图5所示,本发明实施例还提供一种RN小程序的加载装置,其中包括生成模块10、发送模块20、接收模块30、判断模块40、更新模块50和加载模块60。
生成模块10用于采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数,所述入参参数包括RN小程序的code标识符。
发送模块20用于将第一访问请求发送至服务器以获取远端RN小程序的基本信息。
接收模块30用于接收服务器返回的远端RN小程序的基本信息。
判断模块40用于判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致。
若否,则由更新模块执行更新;若是,则由加载模块执行加载。
更新模块50用于对本地缓存的本地RN小程序进行更新;更新完成后由加载模块执行加载。
加载模块60用于启动RN框架加载远端RN小程序。
进一步的,判断模块40具体用于:将远端RN小程序的远端版本号和远端文件签名分别与本地缓存的本地RN小程序的本地版本号和本地文件签名进行比较,生成判断结果。
进一步的,更新模块50具体用于:通过原生的版本更新组件对本地缓存的本地RN小程序进行更新,获取远端RN小程序的源代码。
具体的,更新模块50构造第二访问请求以从服务器下载远端的RN小程序的源代码压缩文件;下载完毕后,更新模块50对远端的RN小程序的源代码压缩文件进行解压,得到RN小程序的源代码,并将RN小程序的源代码存放至移动终端的本地空间。
进一步的,加载模块60具体用于:对所述RN加载器进行扩展,以使所述RN加载器能够加载缓存;使用扩展后的RN加载器加载远端RN小程序的源代码。
进一步的,该装置还包括:加密模块70,用于利用加密算法对所述第一访问请求进行加密。
加密模块70具体用于对所述第一访问请求的API请求参数,根据参数名称的ASCII码表的顺序排序;将排序好的参数名和参数值进行拼装,生成字符串;把拼装好的字符串进行编码,生成字节流;使用签名算法对编码后的字节流进行摘要,得到字节流结果;将摘要得到的字节流结果转换为十六进制字符,完成加密。
进一步的,该装置还包括:
显示模块80,用于根据加载的远端RN小程序,生成RN小程序页面;将所述RN小程序页面输出。
实施例四:
本发明实施例还提供了一种RN小程序的加载系统,包括移动端和服务器,服务器布置在远端,移动端与服务器通讯连接。
参照图6对该RN小程序的加载系统的加载过程进行简要说明:
1.0、使用原生构造获取RN app请求。
移动端各自使用原生构造https请求,https请求携带有入参参数,入参参数为app的code标识符,以获取远端的app版本号以及文件的MD5签名。
2.0、服务器返回当前rn app的远端版本号以及文件的MD5签名至移动端。
3.0、远端版本号和本地缓存的版本号比较是否相同。
移动端将本地缓存的rn app的版本号和文件签名分别与当前rn app的远端版本号以及文件的MD5签名进行比较,如有差异,则至4.0步骤进行更新,否则至5.0步骤使用rn加载器进行rn app的加载。
4.0、通过各自原生稳定的版本更新组件更新远端rn代码到本地。
移动端各自使用各自的原生代码进行版本比较,如版本不一致,则使用http请求下载远的rn源代码文件到本地。远端的rn源代码是采用zip的压缩方式进行压缩后存放,移动端下载完毕后,使用zip进行解压到本地空间。其中,android为sd卡上,ios为沙盒内。rn代码按照:移动App的Id/rn App的code/版本号/的方式存放。
5.0、启动RN框架加载本地最新的RN代码。
首先移动端的加载器进行了扩展加入了加载缓存的功能,避免多次加载的情况,反复从存储器里进行加载。首次加载后将rn代码缓存的memory中,直至进程结束或者有版本更新的情况下才释放内存里的app代码。
6.0、使用RN小程序
加载完成后移动端进入和具体业务相关rn小程序页面,该界面上会提供小程序一些基本的和硬件相关的组件,比如拍照、定位、蓝牙等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例提供的RN小程序的加载装置、系统,与上述实施例提供的RN小程序的加载方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例一或实施例二提供的RN小程序的加载方法的步骤。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例一或实施例二提供的RN小程序的加载方法的步骤。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种RN小程序的加载方法,其特征在于,应用于移动终端,该RN小程序的加载方法包括:
生成步骤:采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数,所述入参参数包括RN小程序的code标识符;
发送步骤:将第一访问请求发送至服务器以获取远端RN小程序的基本信息;
接收步骤:接收服务器返回的远端RN小程序的基本信息;
判断步骤:判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致;
若否,则执行更新步骤;
更新步骤:对本地缓存的本地RN小程序进行更新;更新完成后执行加载步骤;
若是,则执行加载步骤;
加载步骤:启动RN框架加载远端RN小程序。
2.根据权利要求1所述的方法,其特征在于,所述更新步骤,具体包括:
移动终端通过原生的版本更新组件对本地缓存的本地RN小程序进行更新,获取远端RN小程序的源代码。
3.根据权利要求2所述的方法,其特征在于,所述移动终端通过原生的版本更新组件对本地缓存的本地RN小程序进行更新,获取远端RN小程序的源代码,具体包括:
移动终端构造第二访问请求以从服务器下载远端的RN小程序的源代码压缩文件;
移动终端下载完毕后,移动终端对远端的RN小程序的源代码压缩文件进行解压,得到RN小程序的源代码,并将RN小程序的源代码存放至移动终端的本地空间。
4.根据权利要求1所述的方法,其特征在于,在所述发送步骤之前,还包括:
加密步骤:利用加密算法对第一访问请求进行加密。
5.根据权利要求4所述的方法,其特征在于,所述加密步骤,具体包括:
对所述第一访问请求的API请求参数,根据参数名称的ASCII码表的顺序排序;
将排序好的参数名和参数值进行拼装,生成字符串;
把拼装好的字符串进行编码,生成字节流;
使用签名算法对编码后的字节流进行摘要,得到字节流结果;
将摘要得到的字节流结果转换为十六进制字符,完成加密。
6.根据权利要求1所述的方法,其特征在于,所述加载步骤,具体包括:
对所述RN加载器进行扩展,以使所述RN加载器能够加载缓存;
使用扩展后的RN加载器加载远端RN小程序的源代码。
7.根据权利要求1所述的方法,其特征在于,还包括:
显示步骤:根据加载的远端RN小程序,生成RN小程序页面;将所述RN小程序页面输出。
8.根据权利要求1所述的方法,其特征在于,所述判断步骤,具体包括:
将远端RN小程序的远端版本号和远端文件签名分别与本地缓存的本地RN小程序的本地版本号和本地文件签名进行比较,生成判断结果。
9.一种RN小程序的加载装置,其特征在于,包括:
生成模块,用于采用原生代码构造第一访问请求,所述第一访问请求携带有入参参数,所述入参参数包括RN小程序的code标识符;
发送模块,用于将第一访问请求发送至服务器以获取远端RN小程序的基本信息;
接收模块,用于接收服务器返回的远端RN小程序的基本信息;
判断模块,用于判断远端RN小程序的基本信息与本地缓存的本地RN小程序的基本信息是否一致;
若否,则由更新模块执行更新;若是,则由加载模块执行加载;
更新模块,用于对本地缓存的RN小程序进行更新;更新完成后由加载模块执行加载;
加载模块,用于启动RN框架加载远端RN小程序。
10.根据权利要求9所述的RN小程序的加载装置,其特征在于,还包括:
加密模块,用于利用加密算法对所述第一访问请求进行加密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810308567.3A CN108536486A (zh) | 2018-04-08 | 2018-04-08 | Rn小程序的加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810308567.3A CN108536486A (zh) | 2018-04-08 | 2018-04-08 | Rn小程序的加载方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108536486A true CN108536486A (zh) | 2018-09-14 |
Family
ID=63483376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810308567.3A Pending CN108536486A (zh) | 2018-04-08 | 2018-04-08 | Rn小程序的加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108536486A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491721A (zh) * | 2018-11-02 | 2019-03-19 | 百度在线网络技术(北京)有限公司 | 用于加载信息的方法和装置 |
CN109491672A (zh) * | 2018-10-23 | 2019-03-19 | 平安普惠企业管理有限公司 | 金融小程序的实现方法、装置、计算机设备及存储介质 |
CN109558202A (zh) * | 2018-12-14 | 2019-04-02 | 平安城市建设科技(深圳)有限公司 | 基于小程序的列表页面开发方法、装置、设备及存储介质 |
CN109857403A (zh) * | 2018-12-05 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 一种页面更新、页面处理方法及装置 |
CN110083399A (zh) * | 2019-03-04 | 2019-08-02 | 上海连尚网络科技有限公司 | 小程序运行方法、计算机设备及存储介质 |
CN110659057A (zh) * | 2019-09-24 | 2020-01-07 | 腾讯科技(深圳)有限公司 | 应用程序热更新方法、装置、存储介质及计算机设备 |
CN111782229A (zh) * | 2020-06-30 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 一种小程序启动方法、装置及电子设备 |
CN111859225A (zh) * | 2020-07-31 | 2020-10-30 | 中国工商银行股份有限公司 | 程序文件的访问方法、装置、计算设备和介质 |
CN112052185A (zh) * | 2020-09-29 | 2020-12-08 | 北京百度网讯科技有限公司 | 小程序的异常处理方法、装置、电子设备和存储介质 |
CN112230965A (zh) * | 2020-10-30 | 2021-01-15 | 广东耐思智慧科技有限公司 | 一种应用程序内小程序热更新的系统和方法 |
CN112379945A (zh) * | 2020-11-20 | 2021-02-19 | 北京百度网讯科技有限公司 | 用于运行应用的方法、装置、设备以及存储介质 |
CN110795099B (zh) * | 2019-09-03 | 2023-08-29 | 五八有限公司 | 一种页面样式转换方法、装置、终端设备及存储介质 |
US11809903B2 (en) | 2020-03-13 | 2023-11-07 | Baidu Online Network Technology (Beijing) Co., Ltd. | Mini program processing method, apparatus, device and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141922A (zh) * | 2010-01-29 | 2011-08-03 | 腾讯科技(深圳)有限公司 | 一种微内核插件化程序应用系统及其实现方法 |
US20140026124A1 (en) * | 2011-01-19 | 2014-01-23 | International Business Machines Corporation | Updating software |
CN105302563A (zh) * | 2015-11-09 | 2016-02-03 | 歌尔声学股份有限公司 | 移动应用服务的插件化方法及系统 |
-
2018
- 2018-04-08 CN CN201810308567.3A patent/CN108536486A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141922A (zh) * | 2010-01-29 | 2011-08-03 | 腾讯科技(深圳)有限公司 | 一种微内核插件化程序应用系统及其实现方法 |
US20140026124A1 (en) * | 2011-01-19 | 2014-01-23 | International Business Machines Corporation | Updating software |
CN105302563A (zh) * | 2015-11-09 | 2016-02-03 | 歌尔声学股份有限公司 | 移动应用服务的插件化方法及系统 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491672A (zh) * | 2018-10-23 | 2019-03-19 | 平安普惠企业管理有限公司 | 金融小程序的实现方法、装置、计算机设备及存储介质 |
CN109491721A (zh) * | 2018-11-02 | 2019-03-19 | 百度在线网络技术(北京)有限公司 | 用于加载信息的方法和装置 |
CN109857403B (zh) * | 2018-12-05 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 一种页面更新、页面处理方法及装置 |
CN109857403A (zh) * | 2018-12-05 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 一种页面更新、页面处理方法及装置 |
CN109558202A (zh) * | 2018-12-14 | 2019-04-02 | 平安城市建设科技(深圳)有限公司 | 基于小程序的列表页面开发方法、装置、设备及存储介质 |
CN110083399A (zh) * | 2019-03-04 | 2019-08-02 | 上海连尚网络科技有限公司 | 小程序运行方法、计算机设备及存储介质 |
CN110795099B (zh) * | 2019-09-03 | 2023-08-29 | 五八有限公司 | 一种页面样式转换方法、装置、终端设备及存储介质 |
CN110659057B (zh) * | 2019-09-24 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 应用程序热更新方法、装置、存储介质及计算机设备 |
CN110659057A (zh) * | 2019-09-24 | 2020-01-07 | 腾讯科技(深圳)有限公司 | 应用程序热更新方法、装置、存储介质及计算机设备 |
US11809903B2 (en) | 2020-03-13 | 2023-11-07 | Baidu Online Network Technology (Beijing) Co., Ltd. | Mini program processing method, apparatus, device and storage medium |
CN111782229A (zh) * | 2020-06-30 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 一种小程序启动方法、装置及电子设备 |
CN111782229B (zh) * | 2020-06-30 | 2024-04-23 | 百度在线网络技术(北京)有限公司 | 一种小程序启动方法、装置及电子设备 |
CN111859225B (zh) * | 2020-07-31 | 2023-08-22 | 中国工商银行股份有限公司 | 程序文件的访问方法、装置、计算设备和介质 |
CN111859225A (zh) * | 2020-07-31 | 2020-10-30 | 中国工商银行股份有限公司 | 程序文件的访问方法、装置、计算设备和介质 |
CN112052185A (zh) * | 2020-09-29 | 2020-12-08 | 北京百度网讯科技有限公司 | 小程序的异常处理方法、装置、电子设备和存储介质 |
CN112052185B (zh) * | 2020-09-29 | 2023-11-10 | 北京百度网讯科技有限公司 | 小程序的异常处理方法、装置、电子设备和存储介质 |
CN112230965A (zh) * | 2020-10-30 | 2021-01-15 | 广东耐思智慧科技有限公司 | 一种应用程序内小程序热更新的系统和方法 |
CN112379945A (zh) * | 2020-11-20 | 2021-02-19 | 北京百度网讯科技有限公司 | 用于运行应用的方法、装置、设备以及存储介质 |
CN112379945B (zh) * | 2020-11-20 | 2024-04-19 | 北京百度网讯科技有限公司 | 用于运行应用的方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536486A (zh) | Rn小程序的加载方法及装置 | |
CN107844301A (zh) | 一种安卓应用渠道合包方法及装置 | |
CN107436787B (zh) | 资源处理方法、装置、存储介质和电子装置 | |
JP2016535354A (ja) | 共通中間言語ベースのプログラムのためのセキュリティ提供方法 | |
CN105900104A (zh) | 安全元件中的小应用程序迁移 | |
CN106897587A (zh) | 加固应用、加载加固应用的方法和装置 | |
CN103530534A (zh) | 一种基于签名验证的Android程序ROOT授权方法 | |
CN104573527A (zh) | 一种基于更新安全机制的uefi系统更新方法 | |
CN108363566A (zh) | 一种项目开发过程中文件配置方法、智能终端及存储介质 | |
CN110334028A (zh) | 一种安卓模拟器检测方法、计算机设备及存储介质 | |
CN101557585A (zh) | 一种智能卡 | |
CN107315958A (zh) | 数据对象的合法性验证方法和装置 | |
CN106843939A (zh) | 应用的渠道包的生成方法及装置 | |
KR20160020294A (ko) | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 | |
CN107133524A (zh) | 一种数据存储方法及装置 | |
WO2022078366A1 (zh) | 应用保护方法、装置、设备及介质 | |
CN108134673A (zh) | 一种生成白盒库文件的方法及装置 | |
CN109241707A (zh) | 应用程序的混淆方法、装置和服务器 | |
CN103559464B (zh) | 社保ic卡个人化方法、装置及系统 | |
JP5704951B2 (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
CN109582238A (zh) | 一种硬盘绑定、匹配方法、系统及电子设备和存储介质 | |
CN106971111A (zh) | 数据加密方法、终端及服务器 | |
CN110457869A (zh) | 程序编译加密方法、装置、存储介质及电子设备 | |
KR101557455B1 (ko) | 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법 | |
CN104462883A (zh) | 一种apk文件加固的方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180914 |
|
RJ01 | Rejection of invention patent application after publication |