混合应用页面跳转方法、装置、电子设备及存储介质与流程

文档序号:31707789发布日期:2022-10-01 12:39阅读:105来源:国知局
混合应用页面跳转方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种混合应用页面跳转方法、装置、系统及存储介质。


背景技术:

2.随着移动端的技术发展,混合应用组件成为主流开发方式之一,混合开发过程中会涉及到多种技术的使用,比如一个混合应用使用原生、reactnative、futtler和h5等技术可以打开不同类型的页面,每种技术会创建一个任务栈,用于管理对应类型的页面。由于每种技术的任务栈之间互相独立,因此,在混合应用中难以在当前页面跳转到其他历史页面,跳转过程繁琐,导致混合应用使用体验较差。


技术实现要素:

3.本技术实施例的主要目的在于提出一种混合应用页面跳转方法、装置、电子设备及存储介质,旨在实现混合应用不同类型页面的任意跳转,提高页面跳转的灵活性。
4.为实现上述目的,本技术实施例的第一方面提出了一种混合应用页面跳转方法,所述方法包括:
5.响应于当前页面的跳转指令,提取所述跳转指令中目标链接的页面地址作为页面标识;
6.以预设的资源定位符为前缀,对所述页面标识进行拼接,得到跳转伪链接;
7.响应于所述跳转伪链接确定目标页面实例;
8.将所述目标页面实例放置于任务栈的栈顶,以从所述当前页面跳转至目标页面,其中,所述任务栈用于管理创建的多种类型的页面实例。
9.在一些实施例,所述响应于所述跳转伪链接确定目标页面实例这一步骤,包括:
10.解析所述跳转伪链接得到页面标识;
11.根据所述页面标识查询数据表得到所述目标页面实例,其中,所述数据表用于表征所述跳转伪链接中的页面标识与所述任务栈中的页面实例的映射关系。
12.在一些实施例,所述混合应用页面跳转方法还包括以下步骤:
13.根据所述跳转指令确定操作类型参数,其中,所述操作类型参数用于表征对所述任务栈的管理模式;
14.以所述操作类型参数为后缀拼接到所述跳转伪链接中。
15.在一些实施例,所述将所述目标页面实例放置于所述任务栈的栈顶这一步骤,包括:
16.根据所述跳转伪链接确定任务栈管理模式;
17.根据所述任务栈管理模式和所述目标页面实例调整所述任务栈,以使所述目标页面实例位于所述任务栈的栈顶。
18.在一些实施例,所述根据所述任务栈管理模式和所述目标页面实例调整所述任务
栈这一步骤,包括:
19.当所述任务栈管理模式为默认模式,则在所述任务栈的栈顶创建所述目标页面实例。
20.在一些实施例,所述根据所述任务栈管理模式和所述目标页面实例调整所述任务栈这一步骤,包括:
21.当所述任务栈管理模式为栈顶复用模式,则检测所述目标页面实例是否位于所述任务栈的栈顶;
22.当所述目标页面实例位于所述任务栈的栈顶,则复用栈顶的目标页面实例;或者,
23.当所述目标页面实例不位于所述任务栈的栈顶,则在所述任务栈的栈顶创建所述目标页面实例。
24.在一些实施例,所述根据所述任务栈管理模式和所述目标页面实例调整所述任务栈这一步骤,包括:
25.当所述任务栈管理模式为栈内复用模式,则检测所述任务栈是否存在所述目标页面实例;
26.当所述任务栈存在所述目标页面实例且所述目标页面实例位于所述任务栈的栈顶,则复用栈顶的目标页面实例;或者,
27.当所述任务栈存在所述目标页面实例且所述目标页面实例不位于所述任务栈的栈顶,则将任务栈中在所述目标页面实例之后入栈的页面实例出栈。
28.为实现上述目的,本技术实施例的第二方面提出了一种混合应用页面跳转装置,所述装置包括:
29.第一模块,用于响应于当前页面的跳转指令,提取所述跳转指令中目标链接的页面地址作为页面标识;
30.第二模块,用于以预设的资源定位符为前缀,对所述页面标识进行拼接,得到跳转伪链接;
31.第三模块,用于响应于所述跳转伪链接确定目标页面实例;
32.第四模块,用于将所述目标页面实例放置于任务栈的栈顶,以从所述当前页面跳转至目标页面,其中,所述任务栈用于管理创建的多种类型的页面实例。
33.为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现上述第一方面所述的混合应用页面跳转方法。
34.为实现上述目的,本技术实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面所述的混合应用页面跳转方法。
35.本技术提出的混合应用页面跳转方法、装置、系统及存储介质,其通过跳转伪链接的方式将不同类型页面的跳转操作统一到相同的入口并设置任务栈统一管理创建的不同类型页面实例,将基于不同技术的不同类型页面跳转操作转换为基于跳转伪链接的目标页面实例以调整任务栈的栈顶,从而实现在混合应用中从当前页面直接跳转到任意页面,提
高页面跳转的灵活性。
附图说明
36.图1是本技术实施例提供的混合应用页面跳转方法的流程图;
37.图2是图1中的步骤s103的流程图;
38.图3是图1中的步骤s103之前的步骤流程图;
39.图4是图3中的步骤s302的流程图;
40.图5是图4中的步骤s402的一个实施例流程图;
41.图6是图4中的步骤s402的另一实施例流程图;
42.图7是图4中的步骤s402的另一实施例流程图;
43.图8是本技术实施例提供的页面跳转过程示意图;
44.图9是本技术实施例提供的默认模式下任务栈调整前后示意图;
45.图10是本技术实施例提供的栈顶复用模式下任务栈调整前后示意图;
46.图11是本技术另一实施例提供的栈顶复用模式下任务栈调整前后示意图;
47.图12是本技术实施例提供的栈内复用模式下任务栈调整前后示意图;
48.图13是本技术另一实施例提供的栈内复用模式下任务栈调整前后示意图;
49.图14是本技术实施例提供的混合应用页面跳转装置的结构示意图;
50.图15是本技术实施例提供的电子设备的硬件结构示意图。
具体实施方式
51.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
52.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
53.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
54.目前,混用应用采用多种不同页面开发技术,如图8所示,用户依次创建基于h5技术开发的页面a、基于原生技术开发的页面b、基于reactnative(rn)技术开发的页面c和基于h5技术开发的页面d,在此过程中,基于所用到的技术会各自对应创建任务栈,例如,h5任务栈、原生任务栈和reactnative任务栈,h5任务栈管理页面实例a和页面实例d,原生任务栈管理页面实例b,reactnative任务栈管理页面实例c。当用户在页面d想回到页面a时,由于h5技术开发的页面d无法获取原生任务栈和reactnative任务栈里面的页面,同时原生任务栈和reactnative任务栈也无法得知页面a和页面c所在的任务栈的情况,因此,页面d无法直接回跳到页面a,只能重新创建页面a或者手动一级级回退,即从页面d回退到页面c,从页面c回退到b,在从页面b回退到页面a,导致用户使用混合应用的体验差。
55.相关技术中,可以通过逐级自动关闭页面的方式以从页面d跳转到页面a,在页面d跳转到页面a的过程中,页面实例d关闭同时向前一级的页面实例c发送一个包含页面实例a的通知信息。页面实例c判断出页面实例a不存在于自身的reactnative任务栈中,则关闭页面c并同时向前一级的页面实例b发送一个包含页面实例a的通知信息。页面实例b判断出页面实例a不存在于自身的原生任务栈中,则关闭页面b并同时向前一级的页面实例a发送一个包含页面a的通知信息。页面实例a的判断出页面实例a存在于自身的h5任务栈中,则保留页面a,虽然上述过程能实现从页面d跳转到页面a,但是跳转效率低,且每一级的页面实例都需要针对对应通知信息进行对应的逻辑判断和处理,这种方式不方便对混合应用页面进行功能拓展和修改。
56.基于此,本技术实施例提供了一种混合应用页面跳转方法、装置、系统及存储介质,旨在实现混合应用不同类型页面的任意跳转,提高页面跳转的灵活性。
57.本技术实施例提供的混合应用页面跳转方法、装置、系统及存储介质,具体通过如下实施例进行说明,首先描述本技术实施例中的混合应用页面跳转方法。
58.本技术实施例提供的混合应用页面跳转方法,涉及计算机技术领域。本技术实施例提供的混合应用页面跳转方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现混合应用页面跳转方法的应用等,但并不局限于以上形式。
59.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
60.图1是本技术实施例提供的混合应用页面跳转方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s101至步骤s104:
61.步骤s101,响应于当前页面的跳转指令,提取跳转指令中目标链接的页面地址作为页面标识;
62.步骤s102,以预设的资源定位符为前缀,对页面标识进行拼接,得到跳转伪链接;
63.步骤s103,响应于跳转伪链接确定目标页面实例;
64.步骤s104,将目标页面实例放置于任务栈的栈顶,以从当前页面跳转至目标页面,其中,任务栈用于管理创建的多种类型的页面实例。
65.本技术实施例所示意的步骤s101至步骤s104,通过跳转伪链接的方式将不同类型页面的跳转操作统一到相同的入口并设置任务栈统一管理创建的不同类型页面实例,将基
于不同技术的不同类型页面跳转操作转换为基于跳转伪链接的目标页面实例以调整任务栈的栈顶,从而实现在混合应用中从当前页面直接跳转到任意页面,提高页面跳转的灵活性。
66.在一些实施例的步骤s101中,用户可以在移动终端的当前页面点击某一控件以生成对应的跳转指令,例如,在用户注册流程中,用户可以在原生技术的注册首页输入手机号码后点击注册控件以生成跳转指令,基于该跳转指令调用h5技术的图形验证页面,实现从注册首页跳转到图形验证页面。进一步地,用户也可以在图形验证页面点击返回控件以生成跳转指令,基于该跳转指令回跳到注册首页。在本实施例中,跳转指令可以是指示创建新页面的指令,也可以是指示回跳到某一历史页面的指令,本技术实施例不作具体限制,只要跳转指令能够指示进行页面的跳转操作即可。
67.在一些实施例的步骤s102中,跳转指令包括指示目标页面的目标链接,例如,从基于原生技术开发的当前页面跳转到采用reactnative技术开发的目标页面,目标页面为购物页面,跳转指令中目标链接为“pai://interview/shopping/?_orientation=landscape”,相关技术中,由于当前页面采用原生技术,购物页面采用reactnative技术,两者不是同一种技术开发,各技术平台会直接基于该跳转指令逐级关闭之前的页面直到回到购物页面,或者原生平台基于该跳转指令新建一个购物页面。而在本技术实施例中,原生平台并不直接基于该跳转指令进行操作,而是获得该跳转指令后,截取跳转指令中目标链接的页面地址作为页面标识,即可以将目标链接中的“协议”和“具体路径”部分作为页面标识,比如,目标链接中的“协议”部分为“pai://”,“具体路径”部分为“interview/shopping/”,则截取目标链接中的“pai://interview/shopping/”部分,然后去掉末尾的“/”,得到页面标识为“pai://interview/shopping”。在得到页面标识后,以预设的资源定位符为前缀,对页面标识进行拼接,得到跳转伪链接,例如,预设的资源定位符为“https://esales-local/ask_bob#visit?jumpurl”,资源定位符与页面标识之间等号进行拼接,得到跳转伪链接为“https://esales-local/ask_bob#visit?jumpurl=pai://interview/shopping”。
68.可以理解的是,不同类型目标页面对应的跳转指令中目标协议不同,得到的跳转伪链接也不同,参照表1,对不同技术类型的目标页面得到的跳转伪链接如下:
69.表1目标页面和跳转伪链接示意表
[0070][0071]
需要说明的是,本技术实施例的资源定位符用于定位互联网上某一资源的位置,比如,本技术实施例原生平位置、h5平台位置或者其他任意第三方服务器位置,资源定位符的设置根据本技术实施例任务栈的位置进行设置。示例性地,一个移动混合应用开发结合原生技术、h5技术和reactnative技术,任务栈统一创建于原生平台,原生平台分别向h5平台和reactnative平台发送原生平台指定的资源定位符,以使原生平台、h5平台和reactnative平台都能采用相同的资源定位符处理跳转指令得到跳转伪链接,从而定位到统一入口处理。
[0072]
可以理解的是,当前页面所在的平台对基于当前页面的跳转指令得到跳转伪链接之后,基于该跳转伪链接可以定位到该跳转伪链接中的资源定位符对应的位置,本技术实施例通过将各个不同类型的页面产生的跳转指令转换为跳转伪链接,然后通过跳转伪链接中的资源定位符将不同页面上的跳转操作定位到统一入口作进一步处理。
[0073]
在一些实施例的步骤s103和步骤s104中,以资源定位符为定位到原生平台为例,原生平台服务器上创建有任务栈,由于基于不同技术的不同类型页面的跳转操作都被转换为跳转伪链接接入到原生平台,使得原生平台上的任务栈除了管理自身的原生技术的页面实例外,也管理其他技术类型的页面实例,实现了一个任务栈管理不同类型的页面实例。在跳转过程中,当前页面实例基于跳转指令得到跳转伪链接,基于该跳转伪链接重定向到原生平台后,原生平台响应于跳转伪链接,根据该跳转伪链接中的页面标识确定目标页面实例,将目标页面实例放置于原生平台任务栈的栈顶,实现从当前页面跳转至目标页面。
[0074]
可以理解的是,本技术实施例的资源定位符可以是技术服务提供端的服务器位置,也可以是服务器中的具体文件位置,例如,资源定位符可以是原生平台购物应用文件位置,基于此,原生平台上创建有购物应用的任务栈,在跳转过程中,基于当前页面的跳转指令得到跳转伪链接,基于该跳转伪链接重定向到原生平台购物应用文件后,原生平台响应于跳转伪链接,根据该跳转伪链接中的页面标识确定购物应用的目标页面实例,将目标页面实例放置于购物应用的任务栈的栈顶,从而在同一平台上对不同混合应用的任务栈分开管理。
[0075]
请参阅图2,在一些实施例中,步骤s103可以包括但不限于包括步骤s201和步骤s202:
[0076]
步骤s201,解析跳转伪链接得到页面标识;
[0077]
步骤s202,根据页面标识查询数据表得到目标页面实例,其中,数据表用于表征跳转伪链接中的页面标识与任务栈中的页面实例的映射关系。
[0078]
在一些实施例中,当前页面实例将跳转指令转换为跳转伪链接,基于该跳转伪链接可以定位到对应平台。该平台响应于跳转伪链接,根据该跳转伪链接中的页面标识查询数据表确定目标页面实例,然后将目标页面实例放置于任务栈的栈顶,实现从当前页面跳转至目标页面。
[0079]
具体地,以如图8所示的页面跳转过程为例,阐述本技术实施例的数据表构建过程和任务栈管理过程。设置资源定位符为原生平台地址,原生平台响应于创建h5页面a的操作得到包括页面a地址的跳转指令,将页面a地址作为标识a拼接到资源定位符后面,得到页面a的跳转伪链接,基于该跳转伪链接的资源定位符重定向到原生平台。原生平台查询数据表中不存在标识a,根据跳转伪链接中的标识a跨平台创建h5页面实例a,然后将页面实例a入栈以跳转到页面a,并将标识a作为key值,将页面实例a作为value关联存储到数据表中。h5页面实例a的响应于创建原生页面b的操作得到包括页面b地址的跳转指令,将页面b地址作为标识b拼接到资源定位符后面,得到页面b的跳转伪链接,基于该跳转伪链接的资源定位符定向到原生平台。原生平台查询数据表中不存在标识b,根据跳转伪链接中的标识b创建原生页面实例b,然后将页面实例b入栈以从页面a跳转到页面b,并将标识b作为key值,将页面实例b作为value关联存储到数据表中。页面实例b响应于创建rn页面c的操作得到包括页面c地址的跳转指令,将页面c地址作为标识c拼接到资源定位符后面,得到页面c的跳转伪链接,基于该跳转伪链接的资源符链接定向到原生平台。原生平台查询数据表中不存在标识c,根据跳转伪链接中的标识c跨平台创建rn页面实例c,然后将页面实例c入栈以从页面b跳转到页面c,并将标识c作为key值,将页面实例c作为value关联存储到数据表中。页面实例c响应于创建h5页面d的操作得到包括页面d地址的跳转指令,将页面d地址作为标识d拼接到资源定位符后面,得到页面d的跳转伪链接,基于该跳转伪链接的资源定位符定向到原生平台。原生平台查询数据表中不存在标识d,根据跳转伪链接中的标识d跨平台创建h5页面实例d,然后将页面实例d入栈以从页面c跳转到页面d,并将标识d作为key值,将页面实例d作为value关联存储到数据表中。通过上述过程,原生平台上的任务栈中从上到下依次为页面实例d、页面实例c、页面实例b和页面实例a,数据表中分别存储有标识a-页面实例a、标识b-页面实例b、标识c-页面实例c和标识d-页面实例d的键值对。
[0080]
进一步地,页面实例d响应于跳转到页面a的操作得到包括页面a地址的跳转指令,将页面a地址作为标识a拼接到资源定位符后面,得到页面a的跳转伪链接,基于该跳转伪链接的资源定位符定向到原生平台。原生平台查询到数据表中存在标识a,并根据标识a的键值对确定页面实例a,然后将页面实例a放置于任务栈的栈顶以从页面d跳转到页面a。在本技术实施例中,将页面实例a放置在任务栈的栈顶可以有多种方式,例如,再创建一个页面实例a后入栈,或者依次将页面实例d、页面实例c和页面实例a出栈。
[0081]
在一些实施例中,数据表除了采用键值对来存储页面标识和页面实例的映射关系外,也可以采用树状结构的方式存储页面标识和页面实例的映射关系。示例性地,原生平台响应于跳转到h5页面a的跳转伪链接,从跳转伪链接中标识a“https://xxxxxxxx”提取协议部分“https://”和具体路径部分“xxxxxxxx”,然后将协议部分“https://”作为父节点,具
体路径部分“xxxxxxxx”作为中间节点,将对应的页面实例a作为子节点。原生平台依次响应h5页面a、原生页面b、rn页面c和h5页面d的跳转伪链接,得到数据表中的父节点包括“https://”、“aipage://”和“pai://”,父节点“https://”对应的中间节点为标识a的具体路径a和标识d的具体路径d,具体路径a对应的子节点为页面实例a,具体路径d对应的子节点为页面实例d;父节点“aipage://”对应的中间节点为标识b的具体路径b,具体路径b对应的子节点为页面实例b;父节点“pai://”对应的中间节点为标识c的具体路径c,具体路径c对应的子节点为页面实例c。进一步地,当原生平台响应于来自页面d的跳转到页面a的跳转伪链接,从跳转伪链接中标识a提取协议“https://”和具体路径a。在查询数据表时,先根据提取出的协议“https://”直接与数据表中的父节点匹配并定位到父节点“https://”,然后根据提取出的具体路径a与父节点“https://”的中间节点匹配并定位到中间节点的具体路径a,进而根据中间节点确定页面实例a,然后基于页面实例a管理任务栈。在本技术实施例中,分别将页面标识中的协议和具体路径作为父节点和子节点构建树状结构的数据表,不仅能够减少原生平台的数据存储量,还能基于页面标识的协议和具体路径在数据库中逐级查询,提高查询速度。
[0082]
在一些实施例的步骤s103之前,请参阅图3,在一些实施例中,本技术实施例的混合应用页面跳转方法还包括但不限于步骤s301和步骤s302:
[0083]
步骤s301,根据跳转指令确定操作类型参数,其中,操作类型参数用于表征对任务栈的管理模式;
[0084]
步骤s302,以操作类型参数为后缀拼接到跳转伪链接中。
[0085]
在一些实施例的步骤s301中,基于用户对混合应用的页面的不同管理需求,跳转指令除了包括目标链接外,还可以包括操作类型参数,操作类型参数用于表征对任务栈的管理模式,从而实现对混合应用的页面的不同管理需求。示例性地,用户在依次创建h5页面a、原生页面b、rn页面c和h5页面d后,需要从当前页面d跳转到页面a。用户的需求可能是新建页面a,也可能是回到原来的页面a,用户可能在回到原来的页面a的同时可能需要同时关掉页面b和页面c,也可能需要同时保留页面b和页面c,针对上述用户对混合应用的页面的不同管理需求,后端基于用户对当前页面的操作生成对应操作类型参数的跳转指令,进而将该跳转指令中的操作类型参数拼接到跳转伪链接中,从而在资源定位符对应的平台中,可以根据该操作类型参数管理任务栈。
[0086]
在一些实施例的步骤s302中,将操作类型参数拼接到跳转伪链接中可以有多种方式,本技术实施例提供以下三种操作类型参数拼接到跳转伪链接的方式,如下:
[0087]
第一,采用连接符“&”将直接将操作类型参数拼接到跳转伪链接后面。连接符“&”具有参数连接作用,也可以说是不同参数的间隔符,一般与问号结合使用,一个动态链接中以问号开始之后为第一个参数,使用连接符“&”来串联多个参数或者值。示例性地,跳转指令中包括操作类型参数“singletop”和目标链接“pai://interview/shopping/?_orientation=landscape”,截取目标链接中的“pai://interview/shopping/”部分,然后去掉末尾的“/”,得到页面标识为“pai://interview/shopping”,预设的资源定位符为“https://esales-local/ask_bob#visit?jumpurl”,采用“=”将页面标识添加到资源定位符后面,然后采用连接符“&”将操作类型参数添加到页面标识后面,从而得到跳转伪链接为“https://esales-local/ask_bob#visit?jumpurl=pai://interview/shopping&
singletop”。通过上述跳转伪链接,将跳转请求重定向到基于“https”协议的“esales-local/ask_bob#visit”位置进行处理,然后通过跳转请求的第一个参数“jumpurl=pai://interview/shopping”将“=”后面的值确定为页面标识以确定目标页面实例,通过跳转请求的第二个参数确定操作类型参数以对任务栈进行相应的管理。
[0088]
第二,针对复杂的操作类型参数,可以使用_coparams特殊参数值字段包装成json格式,示例性地,_coparams={"weburl":"https://www.xxx.com"}。
[0089]
第三,针对包括一些特殊字符的操作类型参数,可以使用urlencode函数进行编码后再封装成跳转伪链接。
[0090]
请参阅图4,在一些实施例中,步骤s302可以包括但不限于包括步骤s401和步骤s402:
[0091]
步骤s401,根据跳转伪链接确定任务栈管理模式;
[0092]
步骤s402,根据任务栈管理模式和目标页面实例调整任务栈,以使目标页面位于任务栈的栈顶。
[0093]
在一些实施例的步骤s401中,跳转伪链接中传递的参数除了页面标识,还有操作类型参数,根据操作类型参数可以确定对应的任务栈管理模式,例如,跳转伪链接中携带的操作类型参数为“standard”或者跳转伪链接中不携带操作类型参数,则任务栈管理模式为默认模式;跳转伪链接中携带的操作类型参数为“singletop”,则任务栈管理模式为栈顶复用模式;跳转伪链接中携带的操作类型参数为“singletask”,则任务栈管理模式为栈内复用模式。
[0094]
需要说明的是,操作类型参数与任务栈管理模式的对应关系或者在跳转伪链接中不携带操作类型时采用何种任务栈管理模式,可以通过双方平台协商确定。示例性地,一个移动混合应用开发结合原生技术、h5技术和reactnative技术,任务栈统一创建于原生平台,原生平台可以分别发送参数协商请求至h5平台和reactnative平台,以在原生平台与h5平台之间和原生平台与reactnative平台之间协商出操作类型参数和任务栈管理模式的对应关系。可以理解的是,原生平台与h5平台之间协商出的操作类型参数和任务栈管理模式对应关系和原生平台与reactnative技术之间协商出的操作类型参数和任务栈管理模式对应关系可以相同,也可以不同,只要原生平台能够基于跳转伪链接确定用户的页面管理操作需求即可。
[0095]
可以理解的是,任务栈管理模式可以包括但不限于默认模式、栈顶复用模式和栈内复用模式三种模式,可以根据实际的用户需要采用更多的任务栈管理模式。如果后续需要进一步添加任务栈管理模式,只需要在任务栈所在平台和其他平台之间协商出新的任务栈管理模式与操作类型参数的映射关系即可。本技术实施例定义新的跳转协议,通过跳转伪链接将所有技术的出入口统一,将原来不同技术的任务栈统一到一个任务栈管理,不仅解决目前多个任务栈的层级混乱而无法直接返回之前页面的问题,实现基于不同类型面之间任意跳转,还能通过在跳转伪链接中添加参数的方式开发新的功能,方便后续对混合应用的开发和拓展。另外,由于接入协议方只需要获取跳转伪链接中的唯一页面标识通过控制任务栈就能进行跳转操作,针对混合应用中使用到的h5技术、reactnative技术、fullter技术以及将来可能出现的新技术,都能互相兼容,降低了混合应用的开发难度。
[0096]
在一些实施例的步骤s402中,在根据跳转伪链接中的操作类型参数确定任务栈管
理模式之后,根据任务栈管理模式和目标页面实例调整任务栈,以使目标页面位于任务栈的栈顶。具体地,以跳转连接统一定位到原生平台为例,原生平台的存储模块分别存储有多种计算机可执行子程序,该计算机可执行子程序用于对任务栈进行调整。原生平台基于跳转伪链接得到目标页面实例和任务栈管理模式,根据任务栈管理模式调用对应的计算机可执行程序,并将目标页面实例作为参数传递到该计算机可执行程序。在计算机可执行程序中,执行结果为目标页面实例处于任务栈的栈顶,以实现从当前页面跳转到目标页面。
[0097]
请参阅图5,在一些实施例中,步骤s402可以包括但不限于包括步骤s501:
[0098]
步骤s501,当任务栈管理模式为默认模式,则在任务栈的栈顶创建目标页面实例。
[0099]
具体地,以资源定位符定位到原生平台为例,即由原生平台创建任务栈,原生平台为跳转伪链接的接入方。原生平台基于跳转伪链接确定出目标页面实例以及确定出跳转伪链接中的操作类型参数为“standard”或者不携带操作类型参数,可以确定任务栈管理模式为默认模式。在默认模式下,不论目标页面实例是否存在于当前任务栈中,都会在任务栈的栈顶创建新的目标页面实例。请参阅图9,初始任务栈从上到下依次为页面实例a、页面实例b和页面实例c,目标页面实例为页面实例a,采用默认模式,在栈顶创建页面实例a后,任务栈从上到下依次为页面实例a、页面实例a、页面实例b和页面实例c,实现在当前页面a上打开新的页面a的操作。
[0100]
请参阅图6,在一些实施例,步骤s402可以包括但不限于包括步骤s601至步骤s603:
[0101]
步骤s601,当任务栈管理模式为栈顶复用模式,则检测目标页面实例是否位于任务栈的栈顶;
[0102]
步骤s602,当目标页面实例位于任务栈的栈顶,则复用栈顶的目标页面实例;
[0103]
步骤s603,当目标页面实例不位于任务栈的栈顶,则在任务栈的栈顶创建目标页面实例。
[0104]
具体地,以资源定位符定位到原生平台为例,原生平台基于跳转伪链接确定出目标页面实例以及确定出跳转伪链接中的操作类型参数为singletop”,可以确定任务栈管理模式为栈顶复用模式。在栈顶复用模式下,检测目标页面实例a是否位于任务栈的栈顶,如果目标页面实例位于任务栈的栈顶,则复用栈顶的目标页面实例,如果目标页面实例不位于任务栈的栈顶,则在栈顶创建目标页面实例。请参阅图10,初始任务栈从上到下依次为页面实例a、页面实例b和页面实例c,目标页面实例为页面实例a,采用栈顶复用模式,检测到初始任务栈的栈顶为页面实例a,复用栈顶的目标页面实例a后,任务栈从上到下依旧为页面实例a、页面实例b和页面实例c,实现对当前页面a的刷新等操作。请参阅图11,初始任务栈从上到下依次为页面实例a、页面实例b和页面实例c,目标页面实例为页面实例b,采用栈顶复用模式,检测到初始任务栈的栈顶不是页面实例b,在任务栈的栈顶创建页面实例b,任务栈从上到下依次为页面实例b、页面实例a、页面实例b和页面实例c,实现在当前页面a上打开新的页面b的操作。
[0105]
请参阅图7,在一些实施例,步骤s402可以包括但不限于包括步骤s701至步骤s702:
[0106]
步骤s701,当任务栈管理模式为栈内复用模式,则检测任务栈是否存在目标页面实例;
[0107]
步骤s702,当任务栈存在目标页面实例且目标页面实例位于任务栈的栈顶,则复用栈顶的目标页面实例;
[0108]
步骤s703,当任务栈存在目标页面实例且目标页面实例不位于任务栈的栈顶,则将任务栈中在目标页面实例之后入栈的页面实例出栈。
[0109]
具体地,以资源定位符定位到原生平台为例,原生平台基于跳转伪链接确定出目标页面实例以及确定出跳转伪链接中的操作类型参数为singletask”,可以确定任务栈管理模式为栈内复用模式。在栈内复用模式下,检测目标页面实例是否存在于任务栈的栈顶,只要任务栈中已存在有目标页面实例,都不会再次创建新的目标页面实例。如果任务栈的栈顶即为目标页面实例,则复用栈顶的目标页面实例,如果任务栈的栈顶不是目标页面实例,目标页面实例位于任务栈的中间位置,则将目标页面实例之后入栈的页面实例全部出栈。请参阅图12,初始任务栈从上到下依次为页面实例a、页面实例b和页面实例c,目标页面实例为页面实例c,采用栈内复用模式,检测到页面实例c存在于任务栈中且不位于栈顶,依次将页面实例a和页面实例b出栈后,任务栈的栈顶即为页面实例c,实现从当前页面a跳回到原来的页面c,并同时关闭页面a和页面c的操作。
[0110]
进一步地,任务栈可能同时存在两个相同目标页面实例,在栈内复用模式下,检测两个以上的目标页面实例存在于任务栈,且两个以上的目标页面实例均不位于任务栈的栈顶,则将栈顶的页面实例出栈,然后检测栈顶的页面实例是否为目标页面实例,如果不是,则将继续将页面实例出栈,直到栈顶为目标页面实例为止。请参阅图13,初始任务栈从上到下依次为页面实例d、页面实例a、页面实例b、页面实例a和页面实例c,目标页面实例为页面实例a,采用栈顶复用模式,检测到初始任务栈中存在两个页面实例a且两个页面实例a均不位于栈顶,将栈顶的页面实例b出栈,然后检测到当前栈顶的页面实例为页面实例a,停止页面实例的出栈操作,从而能够保留两个页面实例a之间的其他页面实例。经过上述操作后,页面实例a、页面实例b、页面实例a和页面实例c,实现从当前页面d回到页面a,并关闭页面a的操作。
[0111]
结合图13对用户页面管理场景进行说明,页面实例c对应浏览首页,页面实例a对应商品列表页,页面实例b对应b商品详情页,页面实例d对应d商品详情页,用户采用默认模式依次打开浏览首页、商品列表页、b商品详情页,用户可能对b商品感兴趣,需要保留b商品详情页,因此采用默认模式或者栈顶复用模式跳转到商品列表页,然后打开d商品详情页。浏览d商品详情页后,用户可能对d商品不感兴趣,则采用栈内复用模式回到上一级的商品列表页的同时关闭d商品详情页,满足用户的页面管理需求。
[0112]
请参阅图14,本技术实施例还提供一种混合应用页面跳转装置,可以实现上述混合应用页面跳转方法,该装置包括:
[0113]
第一模块,用于响应于当前页面的跳转指令,提取跳转指令中目标链接的页面地址作为页面标识;
[0114]
第二模块,用于以预设的资源定位符为前缀,对页面标识进行拼接,得到跳转伪链接;
[0115]
第三模块,用于根据跳转伪链接确定目标页面实例;
[0116]
第四模块,用于将目标页面实例放置于任务栈的栈顶,以从当前页面跳转至目标页面,其中,任务栈用于管理创建的多种类型的页面实例。
[0117]
该混合应用页面跳转装置的具体实施方式与上述混合应用页面跳转方法的具体实施例基本相同,在此不再赘述。
[0118]
本技术实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述混合应用页面跳转方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
[0119]
请参阅图15,图15示意了另一实施例的电子设备的硬件结构,电子设备包括:
[0120]
处理器1501,可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施例所提供的技术方案;
[0121]
存储器1502,可以采用只读存储器(readonlymemory,rom)、静态存储设备、动态存储设备或者随机存取存储器(randomaccessmemory,ram)等形式实现。存储器1502可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1502中,并由处理器1501来调用执行本技术实施例的混合应用页面跳转方法;
[0122]
输入/输出接口1503,用于实现信息输入及输出;
[0123]
通信接口1504,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;
[0124]
总线1505,在设备的各个组件(例如处理器1501、存储器1502、输入/输出接口1503和通信接口1504)之间传输信息;
[0125]
其中处理器1501、存储器1502、输入/输出接口1503和通信接口1504通过总线1505实现彼此之间在设备内部的通信连接。
[0126]
本技术实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述混合应用页面跳转方法。
[0127]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0128]
本技术实施例提供的混合应用页面跳转方法、装置、系统及存储介质,其通过跳转伪链接的方式将不同类型页面的跳转操作统一到相同的入口并设置任务栈统一管理创建的不同类型页面实例,将基于不同技术的不同类型页面跳转操作转换为基于跳转伪链接的目标页面实例以调整任务栈的栈顶,从而实现在混合应用中从当前页面直接跳转到任意页面,提高页面跳转的灵活性。
[0129]
本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
[0130]
本领域技术人员可以理解的是,图1-7中示出的技术方案并不构成对本技术实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
[0131]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0132]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0133]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0134]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0135]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0136]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0137]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0138]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例的方法的全部或部分步
骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
[0139]
以上参照附图说明了本技术实施例的优选实施例,并非因此局限本技术实施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1