CN111552463A - 一种页面跳转方法、装置、计算机设备及存储介质 - Google Patents
一种页面跳转方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111552463A CN111552463A CN202010235426.0A CN202010235426A CN111552463A CN 111552463 A CN111552463 A CN 111552463A CN 202010235426 A CN202010235426 A CN 202010235426A CN 111552463 A CN111552463 A CN 111552463A
- Authority
- CN
- China
- Prior art keywords
- page
- module
- name
- target
- native
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例属于计算机技术领域,涉及一种页面跳转方法,包括根据预先创建的RN模块名称生成RN模块配置表,根据预先创建的静态H5模块名称和静态H5页面名称生成H5模块配置表,执行重写load方法生成Native模块配置表;当监控到Native端或RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求时,确认RN模块配置表中是否存在目标模块名称;若存在,根据目标页面名称进行RN页面跳转;若不存在,根据预设条件确认页面跳转请求的目标页面是否为H5页面;若为H5页面,根据H5模块配置表进行H5页面跳转;若不为H5页面,根据Native模块配置表进行Native页面跳转。本申请还提供一种页面跳转装置、计算机设备及存储介质。本申请统一跳转方式置,提升了开发效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种页面跳转方法、装置、计算机设备及存储介质。
背景技术
在应用react-native框架做开发的项目中,页面大多数由JavaScript所编写的RN(React Native)页面构成,少数由H5页面及native语言所编写原生(native)页面构成。比如:OCR扫描、人脸识别、扫码支付等JavaScript不易勾画出的页面就由native实现。又如:理财、保险等可移植模块一般由H5实现。
由于页面编写的语言不同,使得RN页面、native页面和H5页面相互跳转方式也各不相同的同时,跳转过程相当繁琐,造成***负担,此时寻求简单统一的页面跳转方式就显得尤为重要。
发明内容
本申请实施例的目的在于提出一种页面跳转方法,将跳转方式进行统一设置,相关人员可以直接调用设置好的跳转方式进行软件开发。
为了解决上述技术问题,本申请实施例提供一种页面跳转方法,采用了如下所述的技术方案:
一种页面跳转方法,包括下述步骤:
创建存储RN模块名称的信息文件,并创建一组静态H5模块名称和静态H5页面名称分别作为H5模块名称和H5页面名称;
当检测到应用启动时,指示Native端读取所述信息文件以获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表,根据所述静态H5模块名称和所述静态H5页面名称生成H5模块配置表,执行重写load方法生成Native模块配置表;
当监控到所述Native端或RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求时,确认所述RN模块配置表中是否存在所述目标模块名称,其中,所述页面跳转请求用于请求跳转至目标页面;
若所述RN模块配置表中存在所述目标模块名称,则根据所述目标页面名称进行RN页面跳转;
若不存在所述目标模块名称,则根据预设条件确认所述页面跳转请求的目标页面是否为H5页面;
若为H5页面,则根据H5模块配置表进行H5页面跳转;以及
若不为H5页面,则直接进行Native页面跳转或者根据Native模块配置表进行Native页面跳转。
进一步的,所述指示Native端读取所述信息文件以获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表的步骤包括:
指示所述Native端执行与信息文件关联的模块解析脚本,以读取所述信息文件获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表;
所述执行重写load方法生成Native模块配置表的步骤包括:
指示所述Native端执行重写load方法,在load方法中将预设的Native模块名称和Native页面名称加载到全局数组中,生成Native模块配置表。
进一步的,所述Native模块配置表还包括模块类和页面类,所述Native模块名称与所述模块类一一对应,所述页面类与所述Native页面名称一一对应;所述模块类与至少一个页面类具有对应关系;所述进行Native页面跳转的步骤包括:
根据所述目标模块名称获取Native模块配置表,确定与所述目标模块名称对应的所述模块类;
根据所述目标页面名称和确定的所述模块类确定对应的页面类;
根据所述页面类选择预先配置的控制器;
通过所述控制器进行Native页面跳转。
进一步的,所述RN模块名称以react_native开头;所述指示Native端执行与信息文件关联的模块解析脚本,读取所述信息文件获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表的步骤包括:
指示所述Native端执行与信息文件关联的模块解析脚本,读取所述信息文件中以react_native开头的模块名称;
根据获取的所述RN模块名称生成RN模块配置表;
将所述RN模块配置表存储入JavaScript全局数组中。
进一步的,所述根据预设条件确认所述页面跳转请求的目标页面是否为H5页面的步骤包括:
当监控到所述Native端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且所述RN模块配置表中不存在所述目标模块名称时,获取所述H5模块配置表,判断所述目标模块名称与所述静态H5模块名称是否相同;
若所述目标模块名称与所述静态H5模块名称相同,则确认所述页面跳转请求的目标页面为H5页面;
所述页面跳转请求还携带有目标页面跳转传递参数,所述目标页面跳转传递参数携带有URL;
所述进行H5页面跳转的步骤包括:
通过所述目标页面跳转传递参数获取URL,通过所述URL进行H5页面跳转。
进一步的,所述页面跳转请求还携带有目标页面跳转传递参数;
所述根据所述目标页面名称进行RN页面跳转的步骤包括:
根据所述目标页面名称进行RN页面跳转的同时,根据所述目标页面跳转传递参数获得目标页面的上一个页面中的自定义信息;
将所述自定义信息传输至目标页面。
进一步的,所述根据预设条件确认页面跳转请求的目标页面是否为H5页面的步骤包括:
当监控到所述RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且所述RN模块配置表中不存在所述目标模块名称时,则识别所述页面跳转请求;
判断所述页面跳转请求中是否携带有URL;
若所述页面跳转请求中携带有URL,则确认所述页面跳转请求的目标页面为H5页面;
所述进行H5页面跳转的步骤之前还包括:
将所述目标模块名称和所述目标页面名称传递至所述Native端,以指示所述Native端进行H5页面跳转。
为了解决上述技术问题,本申请实施例还提供一种页面跳转装置,采用了如下所述的技术方案:
一种页面跳转装置,包括:
创建模块,用于创建存储RN模块名称的信息文件,并创建一组静态H5模块名称和静态H5页面名称分别作为H5模块名称和H5页面名称;;
生成模块,用于当检测到应用启动时,指示Native端读取所述信息文件获取RN模块名称,根据获取的所述RN模块名称生成RN模块配置表,根据所述静态H5模块名称和所述静态H5页面名称生成H5模块配置表,执行重写load方法生成Native模块配置表;
第一确认模块,用于当监控到所述Native端或RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求时,确认所述RN模块配置表中是否存在所述目标模块名称,其中,所述页面跳转请求用于请求跳转至目标页面;
第一跳转模块,用于若所述RN模块配置表中存在所述目标模块名称,则根据所述目标页面名称进行RN页面跳转。
第二确认模块,若不存在所述目标模块名称,则根据预设条件确认所述页面跳转请求的目标页面是否为H5页面;
第二跳转模块,若为H5页面,则根据H5模块配置表进行H5页面跳转;以及
第三跳转模块,若不为H5页面,则直接进行Native页面跳转或者根据Native模块配置表进行Native页面跳转。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述的一种页面跳转方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种页面跳转方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:本申请生成RN配置模块表、Native配置模块表、H5配置模块表,使用统一的方法解析传入的目标模块名称和目标页面名称来判断本次页面请求的页面跳转隶属于什么类型页面,进而传入相应的模块名称和页面名称及页面参数完成页面跳转。
在本申请提供的方法中,业务开发人员不需要关心内部实现逻辑,只需知道想要跳转的模块名称和页面名称即可调用该方法进行页面跳转,省去了RN页面如何跳转Native页面及H5页面、Native页面如何跳转RN页面及H5页面等学习成本,极大提升了开发效率。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的一种页面跳转方法的一个实施例的流程图;
图3是根据本申请的一种页面跳转装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
附图标记:200、计算机设备;201、存储器;202、处理器;203、网络接口;300、页面跳转装置;301、创建模块;302、生成模块;303、确认模块;304、第一跳转模块。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExperrsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的页面跳转方法一般由服务器/终端设备执行,相应地,页面跳转装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的不同类型的页面跳转的方法的一个实施例的流程图。所述的页面跳转方法,包括以下步骤:
S1:创建存储RN模块名称的信息文件,并创建一组静态H5模块名称和静态H5页面名称分别作为H5模块名称和H5页面名称;。
在本实施例中,所述信息文件为JSON格式,命名为modules.json。所述信息文件中存储有应用的模块信息,其中,应用的模块信息包括应用的RN模块名称、仓库地址和分支名称;其中,所述分支名称用于管理人员判断应用中模块的版本,便于版本管控。JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。设置文件为JSON格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
S2:当检测到应用启动时,指示Native端读取所述信息文件,以获取RN模块名称,根据获取的RN模块名称生成RN模块配置表,根据所述静态H5模块名称和静态H5页面名称生成H5模块配置表,执行重写load方法生成Native模块配置表。
在本实施例中,生成RN模块配置表、Native模块配置表、H5模块配置表,便于存储、记录和查看;在现有技术中,H5页面不涉及模块名称(Module Id)和页面名称(Page Id)等信息,只需要根据传入URL(Uniform Resource Locator,统一资源定位符)不同就可以展示不同页面,但本申请为了实现方式统一,便于处理,依然提供一个静态的模块名称(ModuleId)和页面名称(Page Id)给H5页面。比如H5的模块名称设置为H5Module,页面名称设置为H5Page。
具体的,在步骤S2中,即指示Native端读取所述信息文件以获取RN模块名称,根据获取的RN模块名称生成RN模块配置表的步骤中,包括:
指示Native端执行与信息文件关联的模块解析脚本,以读取所述信息文件获取RN模块名称,根据获取的RN模块名称生成RN模块配置表;
在步骤S2中,即执行重写load方法生成Native模块配置表的步骤包括:
指示Native端执行重写load方法,在load方法中将预设的Native模块名称和Native页面名称加载到全局数组中,生成Native模块配置表。
在本实施例中,通过模块解析脚本读取信息文件,以提高读取速度。Native模块名称和Native页面名称是根据预设的模块名称和页面名称执行重写load方法添加进来的。
进一步的,所述RN模块名称以react_native开头;所述指示Native端执行与信息文件关联的模块解析脚本,以读取所述信息文件获取RN模块名称,根据获取的RN模块名称生成RN模块配置表的步骤包括:
指示Native端执行与信息文件关联的模块解析脚本,读取所述信息文件中以react_native开头的模块名称;
根据获取的RN模块名称生成RN模块配置表;
将所述RN模块配置表存储入JavaScript全局数组中。
在本实施例中,通过执行模块解析(module parse)脚本从所述modules.json文件中提取以react_native开头的模块名称;RN模块的名称为react_native/xxx,native模块直接xxx命名即可。相对于将RN模块配置表存储入局部数组,关闭页面后RN模块配置表就消失的方案来说;本申请将RN模块配置表存入全局数组中,全局数组一直存在于应用(APP)中,这样即使关闭页面RN模块配置表还是一直存在在应用(APP)中。RN模块表、H5模块表和Native模块表是分别独立存在的,在模块跳转时先通过Java Script全局数组获取RN模块配置表,遍历RN配置模块表,其次H5配置模块表,最后Native配置模块表。
S3:当监控到Native端或RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求,以跳转到目标页面时,确认RN模块配置表中是否存在所述目标模块名称,其中,所述页面跳转请求用于请求跳转至目标页面。
在本实施例中,由于项目RN页面较多,本申请优先从RN配置模块表进行查找;若RN模块配置表中存在有目标模块名称,则根据目标页面名称进行RN页面跳转,本申请中因为一个模块可能存在多个页面跳转,所以模块名称与页面名称为一对多的关系,例如:模块名称都为react_native-存款,但对于存款这个概念来说还存在活期和定期,活期和定期分别对应不同的页面;所以模块名称为react_native-存款的模块,对应的页面名称可以为活期存款和定期存款。还如:当跳转到扫码页面时,扫码分为主扫和被扫页面,模块名称为同一个,页面名称可以分别标记为主扫页面和被扫页面;本申请先通过目标模块名称确定所需要跳转的页面的类别,再通过目标页面名称进一步确定此类别下需要跳转的页面,例如:通过目标模块名称确定为扫描页面的类别,然后通过目标页面名称,确定为主扫页面。
S4:若RN模块配置表中存在所述目标模块名称,则根据所述目标页面名称进行RN页面跳转。
在本实施例中,可以通过监控接收到页面跳转请求的方式确认当前端是在Native端或RN端。一般页面跳转过程都是在Native端执行,但在当前端为RN端,且确认为RN页面跳转时,也可以不经过Native端,直接在RN端进行解析后执行跳转,减少性能损耗;但在当前端为RN端,且确认为Native页面跳转和H5页面跳转时,则仍由Native端执行跳转。
具体的,所述页面跳转请求还携带有目标页面跳转传递参数;在步骤S4中,即所述根据所述目标页面名称进行RN页面跳转的步骤包括:根据目标页面名称进行RN页面跳转的同时,根据所述目标页面跳转传递参数获得上一个页面中的自定义信息;将所述自定义信息传输至目标页面。
在本实施例中,目标页面跳转传递参数(Page Config)为跳转到页面后的初始化传递参数,用于传递上一个页面中的自定义信息(flag),其中,自定义信息为上一个页面中用户输入的数据,而不是预先配置好的数据。自定义信息可以是用户名,标题等具体内容;比如:不论是从主页跳转还是从个人页跳转,都可以让目标页面跳转传递参数(PageConfig)中携带一个自定义信息,在跳转进入下一个页面时,***可以通过目标页面跳转传递参数提取出这个自定义信息,来进行下一步的处理。比如:在上一个页面中用户在用户名栏输入XX;那么在跳转到下一个页面的时候,就需要通过目标页面跳转传递参数获取上一个页面用户名栏的XX,以实现标记的传递,实现页面中信息的统一。
当然,在进行Native页面跳转和H5页面跳转时,同样可以通过目标页面跳转传递参数获取自定义信息,并传输至目标页面。
S5:若不存在所述目标模块名称,则根据预设条件确认页面跳转请求的目标页面是否为H5页面;
S6:若为H5页面,则根据H5模块配置表进行H5页面跳转。
在本实施例中,当排除不是RN页面之后先查看是否是H5页面,因为H5页面的模块名称和页面名称是固定的,无需遍历数组造成多余性能损耗,提升效率。
具体的,在步骤S5中,即根据预设条件确认页面跳转请求的目标页面是否为H5页面的步骤包括:
当监控到Native端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且RN模块配置表中不存在所述目标模块名称时,则获取所述H5模块配置表,判断所述目标模块名称与所述静态H5模块名称是否相同;
若所述目标模块名称与所述静态H5模块名称相同,则确认页面跳转请求的目标页面为H5页面;
所述页面跳转请求还携带有目标页面跳转传递参数,所述目标页面跳转传递参数携带有URL;
在步骤S6中,即所述进行H5页面跳转的步骤包括:
通过所述目标页面跳转传递参数获取URL,通过所述URL进行H5页面跳转。
在本实施例中,当排除不是RN页面之后先查看是否是H5页面,因为H5页面的模块名称和页面名称是固定的,无需遍历数组造成多余性能损耗,若传入的目标模块名称与静态的H5模块名称一致,则直接通过URL进行H5页面跳转。
当然也可以,在步骤S5中,即根据预设条件确认页面跳转请求的目标页面是否为H5页面的步骤包括:
当监控到RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且RN模块配置表中不存在所述目标模块名称时,则识别所述页面跳转请求;
判断所述页面跳转请求中是否携带有URL;
若所述页面跳转请求中携带有URL,则确认所述页面跳转请求的目标页面为H5页面;
在步骤S6中,即所述进行H5页面跳转的步骤之前还包括:
将所述目标模块名称和所述目标页面名称传递至Native端,以指示Native端进行H5页面跳转。
在本实施例中,当接收到携带有目标模块名称、目标页面名称和目标页面名称跳转传递参数的页面跳转请求时,优先查找RN模块配置表中是否存在目标模块名称,若是,则直接进行RN内部的页面跳转;若否,则判断所述页面跳转请求中是否携带有URL,若所述页面跳转请求携带有URL,则判断所述目标模块名称为H5模块名称,将所述目标模块名称和所述目标页面名称传递至Native端,以指示Native端进行H5页面跳转;若所述页面跳转请求未携带有URL,则判断所述目标模块名称为Native模块名称,将所述目标模块名称和所述目标页面名称传递至Native端,以指示Native端进行Native页面跳转。此外,不论是在Native端还是在RN端进行页面跳转时,都需要通过H5模块配置表或者RN模块配置表找到对应的控制器进行页面跳转。
避免了RN每次页面跳转都需要到Native端来进行,可以不经过Native端直接在RN端进行解析,减少性能损耗。其中,因为RN(React-Native)的内核是运行在RN页面上的,其本质是JS语言编写的页面,RN内部的页面跳转,即为JS页面加载JS页面,由于不涉及到Native交互,性能损耗较少。因为H5是通过URL可以直接跳转,实际不需要模块名称和页面名称,所以在这个方案中可以直接判断URL是否存在的方式确定是否进行H5页面跳转。而上述之所以给H5配置了模块名称和页面名称,是为了与Native页面和RN页面的跳转方式实现统一。
S7:若不为H5页面,则直接进行Native页面跳转或者根据Native模块配置表进行Native页面跳转。
在本实施例中,因为本申请针对react-native项目中,一个应用的页面的类型只包括RN页面,Native页面以及H5页面,所以若目标模块名称与静态的H5模块名称不一致,那么可以认为页面跳转请求的目标页面为Native页面,目标模块名称就一定是Native模块名称,进而直接进行Native页面跳转。本申请也可以通过确认Native模块配置表中是否包括目标模块名称,若Native模块配置表中包括有目标模块名称,则根据目标页面名称进行Native页面跳转。若Native模块配置表中未含有目标模块名称,则获取错误信息,并发送给相关人员,以保证统一跳转方法的可用性,提升开发效率。
更具体的,所述Native模块配置表还包括模块类和页面类,所述Native模块名称与所述模块类一一对应,所述页面类与所述Native页面名称一一对应;所述模块类与至少一个页面类具有对应关系;所述进行Native页面跳转的步骤包括:
根据目标模块名称获取Native模块配置表,确定与所述目标模块名称对应的模块类;
根据目标页面名称和所确定的模块类确定对应的页面类;
根据所述页面类选择预先配置的控制器;
通过控制器进行Native页面跳转。
在本实施例中,在Native模块配置表中还包括模块类(moduleClass)和页面类(pageClass),所述模块类与所述Native模块名称一一对应,所述页面类与所述Native页面名称一一对应。在APP(应用)启动后,重写所有的class(类)的load方法;其中,所述Native模块配置表中的每一个Native页面名称与页面类相对应。下表作为生成的Native模块配置表的一个示例:
表1 Native模块配置表
第一模块名称 | 第一模块类 | |
页面 | 第一页面名称 | 第一页面类 |
第二页面名称 | 第二页面类 | |
第二模块名称 | 第二模块类 | |
页面 | 第一页面名称 | 第三页面类 |
第二页面名称 | 第四页面类 | |
第三页面名称 | 第五页面类 | |
第三模块名称 | 第三模块类 | |
页面 | 第一页面名称 | 第六页面类 |
…… | …… | …… |
在Native模块配置表中,在任意两个不同模块名称下的页面名称可以相同,也可以不同,本申请在查找Native模块配置表中内容时,先定位到模块名称,再定位到该模块名称下的页面名称,所以即使不同模块名称下的页面名称出现重复,也不会造成干扰;在实际操作过程中,可灵活设定。在本申请中,Native页面的具体跳转方式为:根据目标模块名称与静态的H5模块名称不同,则认为所需要跳转的页面的类型为Native页面,根据目标模块名称获得Native模块配置表中,与所述目标模块名称对应的模块类(moduleClass);确定模块类(moduleClass)后,根据目标页面名称获得在该模块类下,与所述目标页面名称对应的页面类(pageClass),根据所述页面类(pageClass)定位到控制器,其中控制器为Activity或ViewController,进而通过Activity或ViewController执行页面跳转过程,其中,Activity为ios的控制器,ViewController为Android的控制器;分别控制适配于ios或Android的显示页面。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种页面跳转装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的页面跳转装置300包括:创建模块301、生成模块302、确认模块303、第一跳转模块304、第二确认模块305、第二跳转模块306和第三跳转模块307。其中:
创建模块301,用于创建存储RN模块名称的信息文件,并创建一组静态H5模块名称和静态H5页面名称分别作为H5模块名称和H5页面名称;;
生成模块302,用于当检测到应用启动时,指示Native端读取所述信息文件获取RN模块名称,根据获取的RN模块名称生成RN模块配置表,根据所述静态H5模块名称和静态H5页面名称生成H5模块配置表,执行重写load方法生成Native模块配置表;
第一确认模块303,用于当监控到Native端或RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求时,确认RN模块配置表中是否存在所述目标模块名称,其中,所述页面跳转请求用于请求跳转至目标页面;
第一跳转模块304,用于若RN模块配置表中存在所述目标模块名称,则根据所述目标页面名称进行RN页面跳转。
第二确认模块305,若不存在所述目标模块名称,则根据预设条件确认页面跳转请求的目标页面是否为H5页面;
第二跳转模块306,若为H5页面,则根据H5模块配置表进行H5页面跳转;以及
第三跳转模块307,若不为H5页面,则直接进行Native页面跳转或者根据Native模块配置表进行Native页面跳转。
在本实施例的一些可选的实现方式中,所述生成模块302包括解析子模块和重写子模块;所述解析子模块用于指示Native端执行与信息文件关联的模块解析脚本,以读取所述信息文件获取RN模块名称,根据获取的RN模块名称生成RN模块配置表。所述重写子模块用于指示Native端执行重写load方法,在load方法中将预设的Native模块名称和Native页面名称加载到全局数组中,生成Native模块配置表。
所述第三跳转模块307包括第一确定子模块、第二确定子模块、预配子模块和跳转子模块。所述第一确定子模块用于根据目标模块名称获取Native模块配置表,确定与所述目标模块名称对应的模块类;所述第二确定子模块用于根据目标页面名称和所确定的模块类确定对应的页面类;所述预配子模块用于根据所述页面类选择预先配置的控制器;所述跳转子模块用于通过控制器进行Native页面跳转。
所述生成模块还包括执行子模块、生成子模块和存储子模块;所述执行子模块用于指示Native端执行与信息文件关联的模块解析脚本,读取所述信息文件中以react_native开头的模块名称;所述生成子模块用于根据获取的RN模块名称生成RN模块配置表;所述存储子模块用于将所述RN模块配置表存储入JavaScript全局数组中。
所述第一跳转模块包括获取子模块和传输子模块。所述获取子模块用于根据目标页面名称进行RN页面跳转的同时,根据所述目标页面跳转传递参数获得目标页面的上一个页面中的自定义信息;所述传输子模块用于将所述自定义信息传输至目标页面。
所述第二确认模块包括第一监控子模块和第一确认子模块、
所述第一监控子模块用于当监控到Native端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且RN模块配置表中不存在所述目标模块名称时,则获取所述H5模块配置表,判断所述目标模块名称与所述静态H5模块名称是否相同;
所述第一确认子模块用于当所述目标模块名称与所述静态H5模块名称相同时,确认页面跳转请求的目标页面为H5页面;
所述页面跳转请求还携带有目标页面跳转传递参数,所述目标页面跳转传递参数携带有URL;
所述第二跳转模块还用于通过所述目标页面跳转传递参数获取URL,通过所述URL进行H5页面跳转。
所述第二确认模块包括第二监控子模块、判断子模块和第二确认子模块
所述第二监控子模块用于当监控到RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且RN模块配置表中不存在所述目标模块名称时,则识别所述页面跳转请求;
所述判断子模块用于判断所述页面跳转请求中是否携带有URL;
第二确认子模块用于当所述页面跳转请求中携带有URL时,则确认所述页面跳转请求的目标页面为H5页面;
所述页面跳转装置还包括指示模块,所述指示模块用于将所述目标模块名称和所述目标页面名称传递至Native端,以指示Native端进行H5页面跳转。
已有的跳转过程需要开发者去预先学习各个页面的跳转过程;而本申请实际是将所有的页面跳转过程预先封装为一个统一跳转页面的方法,这样开发者只需要统一调用就可以了。本申请生成RN配置模块表、Native配置模块表、H5配置模块表,使用统一的方法解析传入的目标模块名称和目标页面名称来判断本次页面请求的页面跳转隶属于什么类型页面,进而传入相应的模块名称和页面名称及页面参数完成页面跳转。
在本申请提供的方法中,业务开发人员不需要关心内部实现逻辑,只需知道想要跳转的模块名称和页面名称即可调用该方法进行页面跳转,省去了RN页面如何跳转Native页面及H5页面、Native页面如何跳转RN页面及H5页面等学习成本,极大提升了开发效率。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备200包括通过***总线相互通信连接存储器201、处理器202、网络接口203。需要指出的是,图中仅示出了具有组件201-203的计算机设备200,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器201至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器201可以是所述计算机设备200的内部存储单元,例如该计算机设备200的硬盘或内存。在另一些实施例中,所述存储器201也可以是所述计算机设备200的外部存储设备,例如该计算机设备200上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器201还可以既包括所述计算机设备200的内部存储单元也包括其外部存储设备。本实施例中,所述存储器201通常用于存储安装于所述计算机设备200的操作***和各类应用软件,例如页面跳转方法的程序代码等。此外,所述存储器201还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器202在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器202通常用于控制所述计算机设备200的总体操作。本实施例中,所述处理器202用于运行所述存储器201中存储的程序代码或者处理数据,例如运行所述页面跳转方法的程序代码。
所述网络接口203可包括无线网络接口或有线网络接口,该网络接口203通常用于在所述计算机设备200与其他电子设备之间建立通信连接。
在本实施例中,业务开发人员不需要关心内部实现逻辑,只需知道想要跳转的模块名称和页面名称即可调用该方法进行页面跳转,省去了RN页面如何跳转Native页面及H5页面、Native页面如何跳转RN页面及H5页面等学习成本,极大提升了开发效率。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有不同类型的页面跳转程序,所述不同类型的页面跳转程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的页面跳转方法的步骤。
在本实施例中,业务开发人员不需要关心内部实现逻辑,只需知道想要跳转的模块名称和页面名称即可调用该方法进行页面跳转,省去了RN页面如何跳转Native页面及H5页面、Native页面如何跳转RN页面及H5页面等学习成本,极大提升了开发效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种页面跳转方法,其特征在于,包括下述步骤:
创建存储RN模块名称的信息文件,并创建一组静态H5模块名称和静态H5页面名称分别作为H5模块名称和H5页面名称;
当检测到应用启动时,指示Native端读取所述信息文件以获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表,根据所述静态H5模块名称和所述静态H5页面名称生成H5模块配置表,执行重写load方法生成Native模块配置表;
当监控到所述Native端或RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求时,确认所述RN模块配置表中是否存在所述目标模块名称,其中,所述页面跳转请求用于请求跳转至目标页面;
若所述RN模块配置表中存在所述目标模块名称,则根据所述目标页面名称进行RN页面跳转;
若不存在所述目标模块名称,则根据预设条件确认所述页面跳转请求的目标页面是否为H5页面;
若为H5页面,则根据H5模块配置表进行H5页面跳转;以及
若不为H5页面,则直接进行Native页面跳转或者根据Native模块配置表进行Native页面跳转。
2.根据权利要求1所述的一种页面跳转方法,其特征在于,所述指示Native端读取所述信息文件以获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表的步骤包括:
指示所述Native端执行与信息文件关联的模块解析脚本,以读取所述信息文件获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表;
所述执行重写load方法生成Native模块配置表的步骤包括:
指示所述Native端执行重写load方法,在load方法中将预设的Native模块名称和Native页面名称加载到全局数组中,生成Native模块配置表。
3.根据权利要求2所述的一种页面跳转方法,其特征在于,所述Native模块配置表还包括模块类和页面类,所述Native模块名称与所述模块类一一对应,所述页面类与所述Native页面名称一一对应;所述模块类与至少一个页面类具有对应关系;所述进行Native页面跳转的步骤包括:
根据所述目标模块名称获取Native模块配置表,确定与所述目标模块名称对应的所述模块类;
根据所述目标页面名称和确定的所述模块类确定对应的页面类;
根据所述页面类选择预先配置的控制器;
通过所述控制器进行Native页面跳转。
4.根据权利要求2所述的一种页面跳转方法,其特征在于,所述RN模块名称以react_native开头;所述指示Native端执行与信息文件关联的模块解析脚本,读取所述信息文件获取所述RN模块名称,根据获取的所述RN模块名称生成RN模块配置表的步骤包括:
指示所述Native端执行与信息文件关联的模块解析脚本,读取所述信息文件中以react_native开头的模块名称;
根据获取的所述RN模块名称生成RN模块配置表;
将所述RN模块配置表存储入JavaScript全局数组中。
5.根据权利要求4所述的一种页面跳转方法,其特征在于,所述根据预设条件确认所述页面跳转请求的目标页面是否为H5页面的步骤包括:
当监控到所述Native端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且所述RN模块配置表中不存在所述目标模块名称时,获取所述H5模块配置表,判断所述目标模块名称与所述静态H5模块名称是否相同;
若所述目标模块名称与所述静态H5模块名称相同,则确认所述页面跳转请求的目标页面为H5页面;
所述页面跳转请求还携带有目标页面跳转传递参数,所述目标页面跳转传递参数携带有URL;
所述进行H5页面跳转的步骤包括:
通过所述目标页面跳转传递参数获取URL,通过所述URL进行H5页面跳转。
6.根据权利要求1所述的一种页面跳转方法,其特征在于,所述页面跳转请求还携带有目标页面跳转传递参数;
所述根据所述目标页面名称进行RN页面跳转的步骤包括:
根据所述目标页面名称进行RN页面跳转的同时,根据所述目标页面跳转传递参数获得目标页面的上一个页面中的自定义信息;
将所述自定义信息传输至目标页面。
7.根据权利要求1所述的一种页面跳转方法,其特征在于,所述根据预设条件确认页面跳转请求的目标页面是否为H5页面的步骤包括:
当监控到所述RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求,且所述RN模块配置表中不存在所述目标模块名称时,则识别所述页面跳转请求;
判断所述页面跳转请求中是否携带有URL;
若所述页面跳转请求中携带有URL,则确认所述页面跳转请求的目标页面为H5页面;
所述进行H5页面跳转的步骤之前还包括:
将所述目标模块名称和所述目标页面名称传递至所述Native端,以指示所述Native端进行H5页面跳转。
8.一种页面跳转装置,其特征在于,包括:
创建模块,用于创建存储RN模块名称的信息文件,并创建一组静态H5模块名称和静态H5页面名称分别作为H5模块名称和H5页面名称;;
生成模块,用于当检测到应用启动时,指示Native端读取所述信息文件获取RN模块名称,根据获取的所述RN模块名称生成RN模块配置表,根据所述静态H5模块名称和所述静态H5页面名称生成H5模块配置表,执行重写load方法生成Native模块配置表;
第一确认模块,用于当监控到所述Native端或RN端接收到携带有目标模块名称和目标页面名称的页面跳转请求时,确认所述RN模块配置表中是否存在所述目标模块名称,其中,所述页面跳转请求用于请求跳转至目标页面;
第一跳转模块,用于若所述RN模块配置表中存在所述目标模块名称,则根据所述目标页面名称进行RN页面跳转;
第二确认模块,若不存在所述目标模块名称,则根据预设条件确认所述页面跳转请求的目标页面是否为H5页面;
第二跳转模块,若为H5页面,则根据H5模块配置表进行H5页面跳转;以及
第三跳转模块,若不为H5页面,则直接进行Native页面跳转或者根据Native模块配置表进行Native页面跳转。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的一种页面跳转方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的一种页面跳转方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235426.0A CN111552463A (zh) | 2020-03-27 | 2020-03-27 | 一种页面跳转方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235426.0A CN111552463A (zh) | 2020-03-27 | 2020-03-27 | 一种页面跳转方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111552463A true CN111552463A (zh) | 2020-08-18 |
Family
ID=72003781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010235426.0A Pending CN111552463A (zh) | 2020-03-27 | 2020-03-27 | 一种页面跳转方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552463A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177787A (zh) * | 2021-04-13 | 2021-07-27 | 北京健康之家科技有限公司 | 云手机支付方法、装置、存储介质及计算机设备 |
CN113434230A (zh) * | 2021-06-24 | 2021-09-24 | 青岛海尔科技有限公司 | H5页面的跳转控制方法、装置、存储介质及电子装置 |
CN114090145A (zh) * | 2021-10-26 | 2022-02-25 | 青岛海尔科技有限公司 | 页面跳转的确定方法及装置、存储介质、电子装置 |
-
2020
- 2020-03-27 CN CN202010235426.0A patent/CN111552463A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177787A (zh) * | 2021-04-13 | 2021-07-27 | 北京健康之家科技有限公司 | 云手机支付方法、装置、存储介质及计算机设备 |
CN113434230A (zh) * | 2021-06-24 | 2021-09-24 | 青岛海尔科技有限公司 | H5页面的跳转控制方法、装置、存储介质及电子装置 |
CN114090145A (zh) * | 2021-10-26 | 2022-02-25 | 青岛海尔科技有限公司 | 页面跳转的确定方法及装置、存储介质、电子装置 |
CN114090145B (zh) * | 2021-10-26 | 2024-03-22 | 青岛海尔科技有限公司 | 页面跳转的确定方法及装置、存储介质、电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111552463A (zh) | 一种页面跳转方法、装置、计算机设备及存储介质 | |
CN112416458A (zh) | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN104899203B (zh) | 一种网页页面的生成方法、装置及终端设备 | |
CN113157523B (zh) | 服务监控方法、装置、计算机设备及存储介质 | |
CN117033249B (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
CN113869789A (zh) | 一种风险监控的方法、装置、计算机设备及存储介质 | |
CN114626352B (zh) | 报表自动化生成方法、装置、计算机设备及存储介质 | |
CN114968725A (zh) | 任务依赖关系校正方法、装置、计算机设备及存储介质 | |
CN114637672A (zh) | 自动化数据测试方法、装置、计算机设备及存储介质 | |
CN113448578A (zh) | 页面数据处理方法、处理***、电子设备和可读存储介质 | |
CN116302847B (zh) | 异常信息的动态采集方法、装置、计算机设备及介质 | |
CN116108814B (zh) | 甘特图处理方法、装置、计算机设备及存储介质 | |
CN116467145A (zh) | 页面性能数据采集方法、装置、计算机设备及存储介质 | |
CN116149665A (zh) | 一种xaml文件修改方法、装置、计算机设备及存储介质 | |
CN117785181A (zh) | 一种代码执行方法、装置、设备及其存储介质 | |
CN114528220A (zh) | 测试案例的生成方法、装置、计算机设备及存储介质 | |
CN117278623A (zh) | 请求数据的处理方法、装置、计算机设备及存储介质 | |
CN117499270A (zh) | 一种流量处理方法、装置、计算机设备和存储介质 | |
CN117290019A (zh) | 一种接口调用方法、装置、计算机设备和存储介质 | |
CN116467012A (zh) | 一种前端业务部署方法、***、计算机设备及存储介质 | |
CN114817007A (zh) | 信息处理方法及装置、电子设备和计算机可读存储介质 | |
CN115756640A (zh) | 自动化生成作业调度配置的方法及其相关设备 | |
CN117591190A (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 |