具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
由于传统的路由方式,所有的路由必须先行注册,不注册的路由不能响应事件,从而当APP功能到达一定程度时,路由表的代码冗余度会成倍增加,从而无法达到APP的瘦身效果,且在注册路由表时会还消耗大量的终端资源。
基于此,本申请提供了一种路由方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。具体地,终端102上安装有为用户提供服务的应用程序的客户端,服务器104则为对应客户端的后台服务器。终端102响应于应用程序的路由触发指令,获取与路由触发指令对应的路由信息,并对路由信息进行解析,从路由信息中获取目标地址对应的页面标识,进而根据预设的页面标识列表获取与页面标识匹配的视图控制器,以调用视图控制器加载与目标地址对应的目标页面,从而实现在无需注册路由表的情况下进行路由。
在本实施例中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,具体地,终端102可以具有iOS(iPhone Operation System,苹果移动设备操作系统),服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种路由方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,接收对运行的应用程序当前页面进行跳转的路由触发指令,获取与路由触发指令对应的路由信息。
其中,路由触发指令是指挥终端从应用程序的当前页面跳转到其他任意目标页面的指示或命令,也即从当前页面进行跳转的指示或命令。路由信息则包括从应用程序的当前页面跳转到目标页面所需的协议、路径等参数信息。具体地,当用户通过终端发起对当前运行的应用程序显示的当前页面的跳转指示或命令(即路由触发指令)时,该应用程序会与对应的后台服务器进行交互,以触发服务器返回与路由触发指令对应的路由信息,终端则可以获取到该路由信息。
步骤204,对路由信息进行解析,从路由信息中获取目标地址对应的页面标识。
其中,页面标识是指对应页面的唯一标记,即与目标地址对应的资源页面的唯一标记,如可以是该资源页面的页面名称、页面标识号或编码等。由于路由信息包括从应用程序的当前页面跳转到目标页面所需的协议、路径等参数信息,而路径又包括源地址和目标地址,以及源地址和目标地址分别对应的资源页面的页面标识。因此,通过识别路由信息,并采有相应的规则对路由信息进行解析,从而可以获取路由信息中与目标地址对应的目标页面的页面标识。
步骤206,根据预设的页面标识列表获取与目标地址的页面标识对应的目标页面。
其中,目标页面是指目标地址对应的资源页面,也就是基于路由触发指令跳转后显示的页面。页面标识列表中则预先存储有各页面标识与对应页面之间的映射关系,其相对于记录各种路径的路由表来说,仅需要占用终端上较小的资源。在本实施例中,根据预设的页面标识列表查找与页面标识对应的目标页面,从而得到与目标地址的页面标识对应的目标页面。
步骤208,响应于路由触发指令,展示目标页面。
具体地,终端基于接收到的路由触发指令进行上述处理后,对接收到的路由触发指令做出对应的响应,即跳转至目标页面,并展示该目标页面。
上述路由方法,通过接收对运行的应用程序当前页面进行跳转的路由触发指令,获取与路由触发指令对应的路由信息,并对路由信息进行解析,从路由信息中获取目标地址对应的页面标识,进而根据预设的页面标识列表获取目标地址的页面标识对应的目标页面,并响应于路由触发指令,以展示目标页面,从而实现在无需注册路由表的情况下完成对目标页面的路由,且由于无需注册路由表,从而达到了应用程序的瘦身效果,且节省了注册路由表时终端消耗的资源,进而提高了终端的处理能力。
在一个实施例中,如图3所示,根据预设的页面标识列表获取与目标地址对应的目标页面,具体包括:
步骤302,根据预设的页面标识列表获取与目标地址对应的页面标识匹配的视图控制器。
其中,视图控制器负责管理一个页面的层次结构,包括创建页面层次结构中的页面,以及将整个页面层次结构添加到应用窗口。而页面标识列表中则预先存储有各页面标识与视图控制器之间的映射关系,即每一个视图控制器负责管理与其具有映射关系的页面标识对应的页面。在本实施例中,根据预设的页面标识列表查找与目标地址对应的页面标识匹配的视图控制器,从而得到与目标地址对应的目标页面的视图控制器。
步骤304,调用视图控制器加载与目标地址对应的目标页面。
在本实施例中,通过上述步骤获取与目标地址对应的目标页面的视图控制器,并调用该视图控制器加载对应的目标页面,从而可以实现在无需注册路由表的情况下完成对目标页面的跳转。
在一个实施例中,如图4所示,对路由信息进行解析,从路由信息中获取目标地址对应的页面标识,包括如下步骤:
步骤402,对路由信息进行解析,获取路由信息对应的事件类别。
其中,路由信息中包括统一资源标识符(Uniform Resource Identifier,简称URI),URI则是用于标识互联网中某一资源名称的字符串,该标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作,通常URI由包括确定语法和相关协议的方案所定义。因此,通过识别路由信息的统一资源标识符,根据统一资源标识符的头部信息获取对应的协议内容,进而根据协议内容确定路由信息对应的路由触发事件是应用程序的内部触发事件还是外部触发事件,其中,内部触发事件是指在该应用程序的内部进行跳转,即路由信息对应的目标页面同样为该应用程序中的页面。外部触发事件则是指从该应用程序的当前页面跳转至外部的其他页面,如跳转至H5页面或跳转到外部的其他应用程序的页面,也即路由信息对应的目标页面不是该应用程序中的页面。具体地,若识别到URI中的协议内容为该应用程序的自定义协议,则可以确定路由信息对应的事件类别为内部触发事件;若识别到URI中的协议内容不为应用程序的自定义协议,则可以确定路由信息对应的事件类别为外部触发事件。又由于URL(Uniform Resource Locator,统一资源定位器)是一种具体的URI,因此,上述路由信息中的URI也可以通过使用更加具体的URL来代替,从而通过解析路由信息中的URL来获取路由信息对应的事件类别,其具体技术实现过程与URI相类似,此处不再赘述。
步骤404,根据路由信息的事件类别从路由信息中获取目标地址对应的页面标识。
由于URI由包括确定语法和相关协议的方案所定义,且其用于标识资源名称。因此,通过URI中的协议内容即可确定其对应的协议格式。且由上述步骤确定路由信息对应的事件类别为外部触发事件或内部触发事件之后,可以进一步根据其对应的协议格式,而获取目标地址对应的页面标识,即目标地址对应的资源页面的页面标识。具体地,若路由信息对应的事件类别为应用程序的内部触发事件,则根据该应用程序的自定义协议格式,从路由信息的统一资源标识符中提取与目标地址对应目标页面的页面标识;若路由信息对应的事件类别为外部触发事件,则根据协议内容确定对应的协议格式,进而根据协议格式从路由信息的统一资源标识符中提取与目标地址对应的目标页面的页面标识。
举例来说,若路由信息中的url是http://www.baidu.com/Invice,根据该url的头部信息得到其对应的协议内容为“http”,由该协议的定义可知,其是触发外部H5页面的跳转,因此,可以确定其为外部触发事件。进而根据协议“http”对应的协议格式,检测到“Invice”为目标地址对应的目标页面的页面标识。
在本实施例中,通过对路由信息进行解析,并获取路由信息对应的事件类别,进而可以根据路由信息的事件类别,方便快捷地从路由信息中获取目标地址对应的页面标识,从而根据页面标识而获取对应的目标页面,实现在无需注册路由表的情况下完成对目标页面的跳转。
在一个实施例中,为了进一步提高路由效率,并兼顾没有注册的路由事件也能得到响应,本实施例在上述实施例的基础上,可以采用注册部分路由表的方式进行路由,如图5所示,本实施例的路由方法具体可以包括如下步骤:
步骤501,响应于应用程序的启动指令,获取热点路由表的注册信息。
其中,启动指令是指挥终端启动应用程序的指示或命令。热点路由表中记录了指向热点页面的路径,而热点页面可以理解为是该应用程序中点击量最高的部分页面,指向热点页面的路径则是到达该热点页面的路径中使用频率最高的部分路径。在本实施例中,当终端检测到对应用程序的启动指令时,则响应于该启动指令,并获取热点路由表的注册信息,从而在该应用程序中对热点路由表进行注册。
步骤502,接收对运行的应用程序当前页面进行跳转的路由触发指令,获取与路由触发指令对应的路由信息。
步骤503,对路由信息进行解析,从路由信息中获取目标地址对应的页面标识。
步骤504,判断热点路由表中是否存在指向与页面标识匹配的目标页面的路径。若存在,则执行步骤505,若不存在,则执行步骤506。
具体地,通过判断热点路由表中是否存在指向与页面标识匹配的目标页面的路径,若存在,则执行步骤505根据注册的热点路由表完成目标页面的路由,若不存在,执行步骤506根据预设的页面标识列表完成目标页面的路由。
步骤505,若热点路由表中存在指向与页面标识匹配的目标页面的路径,则根据热点路由表中对应的路径访问目标页面。
步骤506,根据预设的页面标识列表获取与目标地址对应的页面标识匹配的视图控制器。
步骤507,调用视图控制器加载与目标地址对应的目标页面。
上述实施例中,通过注册热点路由表并结合页面标识列表的方式进行路由,从而使得指向热点页面的路径可以直接通过注册的热点路由表完成目标页面的路由,而没有注册的路由事件则通过页面标识列表完成对目标页面的路由,不仅使得没有注册的路由事件能够得到响应,而且提高了路由效率,且由于仅注册了部分路由表,因此也能够有效避免路由表的代码冗余。
在一个实施例中,如图6所示,对路由信息进行解析之后,所述方法还可以包括如下步骤:
步骤602,从路由信息中获取对应的路由路径。
其中,路由路径包括源地址和目标地址,在本实施例中,通过识别路由信息,并采有相应的规则对路由信息进行解析,从而可以获取路由信息中对应的路由路径。
步骤604,若预设的埋点路径触发链中存在与路由路径匹配的埋点路径,则获取与路由路径对应的路径数据。
其中,埋点是数据采集领域,基于特定的用户行为或事件进行捕获、处理而得到相关数据的实施过程。埋点路径触发链则是预先部署的进行路径数据采集的条件,其可以包括预设的多条埋点路径。在本实施例中,通过从路由信息中获取对应的路由路径,进而判断预设的埋点路径触发链中是否存在与该路由路径匹配的埋点路径,若存在则自动执行埋点,即获取与该路由路径对应的路径数据,从而避免了传统技术中功能性埋点需要大量冗余判断,导致过于低效的问题。
举例来说,如图7所示,包括页面1(某应用程序的首页)、页面2(发票抬头功能页面)及页面3(该应用程序的会员中心页面),以及页面1-页面2的路径(路径1)和页面3-页面2的路径(路径2),假设对于“路径1”,在应用程序启动时,已进行路由注册,对于“路径2”,则未进行注册。当点击“页面1”中圆圈标注位置时,触发注册的路由“路径1”响应该事件,跳转到“页面2”。当点击“页面3”中方框标注位置时,完成“路径2”的操作,即跳转到“页面2”,具体实现过程可参考如图5所示的方法,本实施例不再对此进行赘述。
由于在接口返回相应路由时,最终页面都是打开“页面2”,但是路由路径则分别是路径1和路径2,在传统的埋点处理过程中,需要分别在路径1和路径2的触发处进行功能性代码的埋点,而这种埋点方式对于不同路径的相同跳转,不好分开埋点,即便分开埋点,但需要大量冗余判断,从而导致代码过于复杂,且不利于统一管理相同页面的埋点事件。而通过本申请的方法,在埋点时,只在触发进入“页面2”时进行埋点操作,即通过本次跳转的路由以及预先对该页面创建的埋点路径触发链而执行埋点操作,因此,对于不同路径,可以进行一致化或者统一化操作。即通过配置可对应用程序各个页面创建埋点路径触发链,根据参数和对应路由路径,将原本繁琐复杂的埋点方式,以更加智能的方式进行操作,从而减少人工优化和维护的工作量。
进一步地,由于埋点操作及分析往往是产品运营等相关部门需要,而这些部门的员工通常不是很懂代码,因此,在设置埋点路径触发链时,可以基于相关路径对应的页面标识而设定,例如,路径1对应的页面标识路径为“首页-发票抬头”,路径2对应的页面标识路径为“个人中心-发票抬头”,进而根据预设的页面标识列表进行反射处理,从而达到自动埋点,获取对应的埋点数据。且本申请的方法能够根据路由,区分相同事件的不同埋点,进行自动埋点操作。
应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种路由装置,包括:路由信息获取模块801、解析模块802、目标页面获取模块803和路由响应模块804,其中:
路由信息获取模块801,用于接收对运行的应用程序当前页面进行跳转的路由触发指令,获取与路由触发指令对应的路由信息;
解析模块802,用于对路由信息进行解析,从路由信息中获取目标地址对应的页面标识;
目标页面获取模块803,用于根据预设的页面标识列表获取与目标地址的页面标识对应的目标页面;
路由响应模块804,用于响应于路由触发指令,展示目标页面。
在一个实施例中,目标页面获取模块803具体用于:根据预设的页面标识列表获取与目标地址对应的页面标识匹配的视图控制器;调用视图控制器加载与目标地址的页面标识对应的目标页面。
在一个实施例中,所述装置还包括注册信息获取模块,用于响应于应用程序的启动指令,获取热点路由表的注册信息,所述热点路由表中记录了指向热点页面的路径;路由响应模块804则具体用于若热点路由表中存在指向与页面标识匹配的目标页面的路径,则根据热点路由表中对应的路径访问目标页面。
在一个实施例中,所述装置还包括埋点处理模块,用于从路由信息中获取对应的路由路径;若预设的埋点路径触发链中存在与路由路径匹配的埋点路径,则获取与路由路径对应的路径数据。
在一个实施例中,解析模块802具体包括:路由信息解析单元,用于对路由信息进行解析,获取路由信息对应的事件类别;页面标识获取单元,用于根据路由信息的事件类别从路由信息中获取目标地址对应的页面标识。
在一个实施例中,路由信息包括统一资源标识符;所述路由信息解析单元具体用于:识别路由信息的统一资源标识符,根据统一资源标识符的头部信息获取对应的协议内容;若协议内容为应用程序的自定义协议,则确定路由信息对应的事件类别为内部触发事件;若协议内容不为应用程序的自定义协议,则确定路由信息对应的事件类别为外部触发事件。
在一个实施例中,页面标识获取单元具体用于:若路由信息对应的事件类别为内部触发事件,则根据应用程序的自定义协议格式,从路由信息的统一资源标识符中提取与目标地址对应的页面标识;若路由信息对应的事件类别为外部触发事件,则根据协议内容确定对应的协议格式,根据协议格式从路由信息的统一资源标识符中提取与目标地址对应的页面标识。
关于路由装置的具体限定可以参见上文中对于路由方法的限定,在此不再赘述。上述路由装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种路由方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收对运行的应用程序当前页面进行跳转的路由触发指令,获取与路由触发指令对应的路由信息;
对路由信息进行解析,从路由信息中获取目标地址对应的页面标识;
根据预设的页面标识列表获取与目标地址的页面标识对应的目标页面;
响应于路由触发指令,展示目标页面。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据预设的页面标识列表获取与目标地址对应的页面标识匹配的视图控制器;调用视图控制器加载与目标地址的页面标识对应的目标页面。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在接收对运行的应用程序当前页面进行跳转的路由触发指令之前,响应于应用程序的启动指令,获取热点路由表的注册信息,所述热点路由表中记录了指向热点页面的路径;并在从路由信息中获取目标地址对应的页面标识之后,若热点路由表中存在指向与页面标识匹配的目标页面的路径,则根据热点路由表中对应的路径访问目标页面。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对路由信息进行解析之后,从路由信息中获取对应的路由路径;若预设的埋点路径触发链中存在与路由路径匹配的埋点路径,则获取与路由路径对应的路径数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对路由信息进行解析,获取路由信息对应的事件类别;根据路由信息的事件类别从路由信息中获取目标地址对应的页面标识。
在一个实施例中,路由信息包括统一资源标识符;则处理器执行计算机程序时还实现以下步骤:识别路由信息的统一资源标识符,根据统一资源标识符的头部信息获取对应的协议内容;若协议内容为应用程序的自定义协议,则确定路由信息对应的事件类别为内部触发事件;若协议内容不为应用程序的自定义协议,则确定路由信息对应的事件类别为外部触发事件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若路由信息对应的事件类别为内部触发事件,则根据应用程序的自定义协议格式,从路由信息的统一资源标识符中提取与目标地址对应的页面标识;若路由信息对应的事件类别为外部触发事件,则根据协议内容确定对应的协议格式,根据协议格式从路由信息的统一资源标识符中提取与目标地址对应的页面标识。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收对运行的应用程序当前页面进行跳转的路由触发指令,获取与路由触发指令对应的路由信息;
对路由信息进行解析,从路由信息中获取目标地址对应的页面标识;
根据预设的页面标识列表获取与目标地址的页面标识对应的目标页面;
响应于路由触发指令,展示目标页面。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据预设的页面标识列表获取与目标地址对应的页面标识匹配的视图控制器;调用视图控制器加载与目标地址的页面标识对应的目标页面。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在接收对运行的应用程序当前页面进行跳转的路由触发指令之前,响应于应用程序的启动指令,获取热点路由表的注册信息,所述热点路由表中记录了指向热点页面的路径;并在从路由信息中获取目标地址对应的页面标识之后,若热点路由表中存在指向与页面标识匹配的目标页面的路径,则根据热点路由表中对应的路径访问目标页面。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对路由信息进行解析之后,从路由信息中获取对应的路由路径;若预设的埋点路径触发链中存在与路由路径匹配的埋点路径,则获取与路由路径对应的路径数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对路由信息进行解析,获取路由信息对应的事件类别;根据路由信息的事件类别从路由信息中获取目标地址对应的页面标识。
在一个实施例中,路由信息包括统一资源标识符;则计算机程序被处理器执行时还实现以下步骤:识别路由信息的统一资源标识符,根据统一资源标识符的头部信息获取对应的协议内容;若协议内容为应用程序的自定义协议,则确定路由信息对应的事件类别为内部触发事件;若协议内容不为应用程序的自定义协议,则确定路由信息对应的事件类别为外部触发事件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若路由信息对应的事件类别为内部触发事件,则根据应用程序的自定义协议格式,从路由信息的统一资源标识符中提取与目标地址对应的页面标识;若路由信息对应的事件类别为外部触发事件,则根据协议内容确定对应的协议格式,根据协议格式从路由信息的统一资源标识符中提取与目标地址对应的页面标识。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。