一种页面返回方法、装置、电子设备及存储介质与流程

文档序号:17772649发布日期:2019-05-28 19:37阅读:141来源:国知局
一种页面返回方法、装置、电子设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种页面返回方法、装置、电子设备及存储介质。



背景技术:

目前移动端应用(英文:application,缩写:app)的开发主要有四种框架:native、web、hybrid以及reactnative。其中,hybrid即混合开发,是一种介于web和native之间的app开发技术,兼具native开发方式在交互体验方面的优势和web开发方式在跨平台开发方面的优势。reactnative是一种开源的app开发方案,使用javascript语言以及css来开发移动端应用。

在app的开发仅采用一种框架,如reactnative框架的情况下,app的前端页面均为reactnative页面,app的处理程序内包含一个reactnative页面的载体页,该reactnative页面的载体页作为reactnative页面的跳转协议运行的容器界面。app的处理程序在接收到多级页面返回的请求时,处理程序会启动reactnative页面的载体页,通过reactnative页面的载体页调用目标页面所对应的跳转协议,将该跳转协议发给目标页面,以通知目标页面执行刷新操作,从而实现当前页面与目标页面的交互。

然而,在app的开发同时采用hybrid和reactnative这两种框架时,app的前端页面既存在reactnative页面,又存在web页面。reactnative页面和web页面各自对应一个唯一的载体页,这两个载体页分别作为reactnative页面和web页面的跳转协议运行的容器界面,reactnative页面和web页面的载体页无法直接相互调用对方页面对应的跳转协议。在app的处理程序接收到多级页面返回的请求时,处理程序无法区分出目标页面对应的载体页,导致无法实现当前页面与目标页面之间的交互。



技术实现要素:

本发明提供一种页面返回方法、装置、电子设备及存储介质,在进行多级页面的返回操作时,能够准确地区分出目标页面对应的载体页,实现reactnative页面和web页面之间的交互。

第一方面,本申请提供一种页面返回方法,包括:

接收从第n级页面返回至第m级页面的请求,m和n为正整数且n大于m;

获取所述第m级页面的标识符,所述第m级页面的标识符在第m级页面跳转至第m+1级页面时被添加至所述第m级页面,所述标识符用于对添加所述标识符的页面进行唯一标记;

比对导航堆栈中已存储页面的标识符与所述第m级页面的标识符是否一致;

如果所述已存储页面的标识符与所述第m级页面的标识符一致,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令;

如果所述已存储页面的标识符与所述第m级页面的标识符不一致,向预设的容错页面发送页面返回指令。

结合第一方面,在第一方面的第一种可实现方式中,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令包括:

调用所述目标页面的跳转协议;

向所述目标页面发送所述跳转协议。

结合第一方面,在第一方面的第二种可实现方式中,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令包括:

提取所述第n级页面的回调参数,所述回调参数在第n-1级页面跳转至第n级页面时被添加至所述第n级页面;

向所述目标页面发送所述回调参数。

结合第一方面,在第一方面的第三种可实现方式中,向预设的容错页面发送页面返回指令包括:

在导航堆栈中的已存储页面中查找第n-1级页面;

向所述第n-1级页面发送页面返回指令。

结合第一方面,在第一方面的第四种可实现方式中,向预设的容错页面发送页面返回指令包括:

在导航堆栈中的已存储页面中查找栈底的首页面;

向所述栈底的首页面发送页面返回指令。

第二方面,本申请提供一种页面返回装置,包括:

接收单元,用于接收从第n级页面返回至第m级页面的请求,m和n为正整数且n大于m;

获取单元,用于获取所述第m级页面的标识符,所述第m级页面的标识符在第m级页面跳转至第m+1级页面时被添加至所述第m级页面,所述标识符用于对添加所述标识符的页面进行唯一标记;

比对单元,用于比对导航堆栈中已存储页面的标识符与所述第m级页面的标识符是否一致;

发送单元,用于在所述已存储页面的标识符与所述第m级页面的标识符一致时,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令;在所述已存储页面的标识符与所述第m级页面的标识符不一致时,向预设的容错页面发送页面返回指令。

结合第二方面,在第二方面的第一种可实现方式中,所述发送单元包括:

调用子单元,用于调用所述目标页面的跳转协议;

发送子单元,用于向所述目标页面发送所述跳转协议。

结合第二方面,在第二方面的第二种可实现方式中,所述发送单元包括:

提取子单元,用于在所述已存储页面的标识符与所述第n级页面的标识符一致时,提取所述第n级页面的回调参数,所述回调参数在第n-1级页面跳转至第n级页面时被添加至所述第n级页面;

发送子单元,用于向所述目标页面发送所述回调参数。

结合第二方面,在第二方面的第三种可实现方式中,所述发送单元包括:

查找子单元,用于在所述已存储页面的标识符与所述第n级页面的标识符不一致时,在导航堆栈中的已存储页面中查找第n-1级页面;

发送子单元,用于向所述第n-1级页面发送页面返回指令。

结合第二方面,在第二方面的第四种可实现方式中,所述发送单元包括:

查找子单元,用于在所述已存储页面的标识符与所述第n级页面的标识符不一致时,在导航堆栈中的已存储页面中查找栈底的首页面;

发送子单元,用于向所述栈底的首页面发送页面返回指令。

第三方面,本申请提供一种电子设备,包括:

存储器,用于存储程序指令;

处理器,用于调用并执行所述存储器中的程序指令,以实现上述第一方面任一项所述的方法。

第四方面,本申请提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的方法。

本发明实施例提供的页面返回方法、装置、电子设备及存储介质,通过在打开新页面的同时向前一级页面添加标识符,在接收到从第n级页面返回至第m级页面的请求时,获取第n级页面的标识符,并比对导航堆栈中每一个已存储页面的标识符与第n级页面的标识符是否一致,在已存储页面的标识符与第n级页面的标识符一致的情况下,以已存储页面作为目标页面,向目标页面发送页面返回指令,从而返回至第m级页面,实现当前页面与目标页面之间的交互;本发明通过在打开新页面的同时向前一级页面添加标识符,在收到多级页面返回的请求时,能够根据页面的标识符查找并返回至目标页面,即使当前页面与目标页面为不同框架的页面,也能够根据查找到的目标页确定载体页,精准地实现当前页面与目标页之间的交互。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的页面返回方法的第一实施例的流程图。

图2为本发明提供的页面返回方法的应用场景示意图。

图3为本发明提供的页面返回方法的第二实施例的流程图。

图4为本发明提供的页面返回方法的第三实施例的流程图。

图5为本发明提供的页面返回方法的第四实施例的流程图。

图6为本发明提供的页面返回方法的第五实施例的流程图。

图7为本发明提供的页面返回装置的实施例的结构示意图。

图8为本发明提供的电子设备的实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。以下结合附图,详细说明本发明各实施例提供的技术方案。

请参阅图1和图2,图1为本发明提供的页面返回方法的第一实施例的流程图,图2为本发明提供的页面返回方法的应用场景示意图。本实施例的方法可应用于电子设备,电子设备可以搭载android系统或者ios系统,并在android系统或者ios系统中安装有可以实现上述页面返回方法的app。本实施例的执行主体可以是app中的处理程序,本实施例的页面返回方法包括如下步骤:

步骤s101,接收从第n级页面返回至第m级页面的请求,m和n为正整数且n大于m。

第n级页面、第m级页面可以是app所提供的可以供用户在其上进行各种操作的前端页面。处理程序是app中用于对数据进行处理的程序,如native。其中,处理程序可以对应多个前端页面。以m=1,n=3为例,第m级页面即第一级页面,第n级页面即第3级页面,用户可以在电子设备上从第一级页面进入第二级页面,然后从第二级页面进入第三级页面。如果用户想要返回至第一级页面,则可以在电子设备上进行相应操作,如点击相应图标等,从而发出从第三级页面返回至第一级页面的请求,该请求发出后可以被app中的处理程序接收。

步骤s102,获取所述第m级页面的标识符,所述第m级页面的标识符在第m级页面跳转至第m+1级页面时被添加至所述第m级页面,所述标识符用于对添加所述标识符的页面进行唯一标记。

处理程序接收到用户打开新页面的请求后,给当前页面添加标识符,具体可以添加deviceeventname,该标识符为当前页面的唯一的标识符。以从第一级页面进入第二级页面为例,具体可以是第一级页面为reactnative页面,第二级页面为web页面,或者,第一级页面为web页面,第二级页面为reactnative页面,处理程序接收到用户发起的从第一级页面进入第二级页面的请求后,可以给第一级页面添加标识符。

其中,当进行push页面的操作时,处理程序会将标识符存储到map表,当进行pop页面的操作时,处理程序会通过map表查找需要返回的目标页面标识符,从而可以避免查找到错误的标识符。

步骤s103,比对导航堆栈中已存储页面的标识符与所述第m级页面的标识符是否一致。

app从一个页面跳转到另一个页面时,处理程序会自动创建存储页面导航历史记录的堆栈,确保用户能够通过电子设备的返回按钮返回到上一页面。由于在本实施例中,每次打开新页面,处理程序都会向跳转前的页面添加标识符,因此,导航堆栈中每一个已存储页面都具有各自的标识符,处理程序具体可以通过遍历的方式,将已存储页面的标识符与之前获取的第m级页面的标识符进行比对,以判断二者是否一致。

步骤s104,如果所述已存储页面的标识符与所述第m级页面的标识符一致,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令。

如果处理程序经过比对,得出某个已存储页面的标识符与第m级页面的标识符一致,则说明该已存储页面是请求返回的目标页面,即第m级页面。因此,处理程序向该目标页面发送页面返回指令,以后使得该目标页面执行刷新操作,使页面从当前的第n级页面返回至第m级页面。

步骤s105,如果所述已存储页面的标识符与所述第m级页面的标识符不一致,向预设的容错页面发送页面返回指令。

如果处理程序经过比对,得出已存储页面的标识符与第m级页面的标识符不一致,则说明导航堆栈中没有发现请求返回的目标页面,即第m级页面。因此,处理程序向预设的容错页面发送页面返回指令,使页面从当前的第n级页面跳转至预设的容错页面,以避免因标识符不一致,导致页面返回时界面卡滞,降低用户的体验的问题。

本实施例中,通过在打开新页面的同时向前一级页面添加标识符,在接收到从第n级页面返回至第m级页面的请求时,获取第n级页面的标识符,并比对导航堆栈中每一个已存储页面的标识符与第n级页面的标识符是否一致,在已存储页面的标识符与第n级页面的标识符一致的情况下,以已存储页面作为目标页面,向目标页面发送页面返回指令,从而返回至第m级页面,实现当前页面与目标页面之间的交互;本发明通过在打开新页面的同时向前一级页面添加标识符,在收到多级页面返回的请求时,能够根据页面的标识符准确地查找并返回至目标页面,即使当前页面与目标页面为不同框架的页面,也能够根据目标页确定对应的载体页,精准地实现当前页面与目标页之间的交互。

请参阅图3,为本发明提供的页面返回方法的第二实施例的流程图,本实施例的执行主体可以是app中的处理程序。在第一实施例的基础上,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令具体可以包括:

步骤s1041,调用所述目标页面的跳转协议。

第n级页面可以是web页面,第m级页面可以是reactnative页面。在从第m级页面跳转至下一级页面,处理程序给第m级页面添加标识符的同时,对第m级页面注进行ioc注册,便于后期获取协议类。后续处理程序在经过比对,得出某个已存储页面的标识符与第m级页面的标识符一致,确定目标页面后,可以通过ioc的反射机制查找到reactnative页面的载体页,例如wbrctcarrierviewcontroller,并启动该reactnative页面的载体页,通过reactnative页面的载体页调用第m级页面对应的跳转协议。

第n级页面可以是reactnative页面,第m级页面可以是web页面。在从第m级页面跳转至下一级页面,处理程序给第m级页面添加标识符的同时,对第m级页面注进行ioc注册,便于后期获取协议类。后续处理程序在经过比对,得出某个已存储页面的标识符与第m级页面的标识符一致,确定目标页面后,可以通过ioc的反射机制查找到web页面的载体页,例如wbhybridcommonwebpagevc,并启动该web页面的载体页,通过web页面的载体页调用第m级页面对应的跳转协议。reactnative页面或者web页面的载体页在第一次调用某一页面对应的跳转协议时,可以是从服务器端或app的缓存中进行加载。

关于ioc的反射机制,具体可以通过ioc框架中的key获取到接口实现类的实例,通过接口类的实例来调用目标函数来达到交互的目的。通过ioc框架的使用,能够避免方法的直接调用和协议通讯等方式无法进行编译检查的不足,同时也可以降低不同框架之间的耦合。

步骤s1042,向所述目标页面发送所述跳转协议。

处理程序利用reactnative页面或者web页面的载体页,调用第m级页面对应的跳转协议之后,可以将该跳转协议发送给第m级页面,使得第m级页面执行相应的操作,如刷新页面操作,从而使页面从第n级页面返回至第m级页面。本实施例的其余步骤具体可参见第一实施例,此处不再赘述。

本实施例中,处理程序在经过比对,得出某个已存储页面的标识符与第m级页面的标识符一致,确定目标页面后,通过调用目标页面的跳转协议,并向目标页面发送所述跳转协议的方式,使得第m级页面执行相应的操作,从而使页面从第n级页面返回至第m级页面。在收到从web页面返回reactnative页面,或者从reactnative页面返回web页面的请求时,能准确地查找到目标页面,根据目标页确定对应的载体页以返回目标页面,精准地实现当前页面与目标页之间的交互。

请参阅图4,为本发明提供的页面返回方法的第三实施例的流程图,本实施例的执行主体可以是app中的处理程序。在本实施例中,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令具体可以包括:

步骤s1043,提取所述第n级页面的回调参数,所述回调参数在第n-1级页面跳转至第n级页面时被添加至所述第n级页面。

第n级页面和第m级页面可以同为web页面,或者同reactnative页面。页面在从第n-1级页面跳转至第n级页面,处理程序给第n-1级页面添加标识符的同时,为第n级页面添加回调函数,在第n级页面关闭时,可以触发该回调函数,并通过回调函数向第n-1级页面传递回调参数。处理程序在经过比对,得出某个已存储页面的标识符与第m级页面的标识符一致,确定目标页面后,可以提取第n级页面的回调参数。

步骤s1044,向所述目标页面发送所述回调参数。

处理程序提取第n级页面的回调参数后,将回调参数发给目标页面,通知第m级页面执行刷新操作。

本实施例中,处理程序在经过比对,得出某个已存储页面的标识符与第m级页面的标识符一致,确定目标页面后,通过提取第n级页面的回调参数,并向目标页面发送回调参数的方式,使得第m级页面执行相应的操作,从而使页面从第n级页面返回至第m级页面,在收到从web页面返回web页面,或者从reactnative页面返回reactnative页面的请求时,能准确地查找并返回至目标页面,将回调参数传递给目标页面,精准地实现当前页面与目标页面之间的交互,实现成本相对较低,页面之间的耦合度低,且支持跨页面的通讯。

请参阅图5,为本发明提供的页面返回方法的第四实施例的流程图,本实施例的执行主体可以是app中的处理程序。在本实施例中,向预设的容错页面发送页面返回指令具体包括:

步骤s1051,在导航堆栈中的已存储页面中查找第n-1级页面。

预设的容错页面可以是第n-1级页面。在从第n-1级页面跳转至第n级页面后,导航堆栈中存储第n-1级页面。处理程序在经过比对,得出已存储页面的标识符与第m级页面的标识符不一致,无法确定目标页面时,处理程序可以在导航堆栈中的已存储页面中查找第n-1级页面。

步骤s1052,向所述第n-1级页面发送页面返回指令。

处理程序查找到第n-1级页面后,可以向第n-1级页面发送页面返回指令,以使页面从当前的第n级页面跳转至第n-1级页面实现容错。

本实施例中,处理程序在经过比对,得出已存储页面的标识符与第m级页面的标识符不一致,无法确定目标页面时,通过在导航堆栈中的已存储页面中查找第n-1级页面,向所述第n-1级页面发送页面返回指令,从而使页面从第n级页面返回至第n-1级页面,以避免因标识符不一致,导致页面返回时界面卡滞,降低用户的体验的问题。

请参阅图6,为本发明提供的页面返回方法的第五实施例的流程图,本实施例的执行主体可以是app中的处理程序。在本实施例中,向预设的容错页面发送页面返回指令具体可以包括:

步骤s1053,在导航堆栈中的已存储页面中查找栈底的首页面。

预设的容错页面可以是首页面即第一级页面。在从第一级页面跳转至第n级页面后,导航堆栈中存储第一级页面。处理程序在经过比对,得出已存储页面的标识符与第m级页面的标识符不一致,无法确定目标页面时,处理程序可以在导航堆栈中的已存储页面中查找首页面。

步骤s1054,向所述栈底的首页面发送页面返回指令。

处理程序查找到首页面后,可以向首页面发送页面返回指令,以使页面从当前的第n级页面跳转至首页面实现容错。

本实施例中,处理程序在经过比对,得出已存储页面的标识符与第m级页面的标识符不一致,无法确定目标页面时,通过在导航堆栈中的已存储页面中查找首页面,向所述首页面发送页面返回指令,从而使页面从第n级页面返回至首页面,以避免因标识符不一致,导致页面返回时界面卡滞,降低用户的体验的问题。

请参阅图7,为本发明实施例提供的一种页面返回装置的结构框图,包括:

接收单元701,用于接收从第n级页面返回至第m级页面的请求,m和n为正整数且n大于m。获取单元702,用于获取所述第m级页面的标识符,所述第m级页面的标识符在第m级页面跳转至第m+1级页面时被添加至所述第m级页面,所述标识符用于对添加所述标识符的页面进行唯一标记。比对单元703,用于比对导航堆栈中已存储页面的标识符与所述第m级页面的标识符是否一致。发送单元704,用于在所述已存储页面的标识符与所述第m级页面的标识符一致时,以所述已存储页面作为目标页面,向所述目标页面发送页面返回指令;在所述已存储页面的标识符与所述第m级页面的标识符不一致时,向预设的容错页面发送页面返回指令。

作为本实施例一种可选的实现方式,所述发送单元704可以包括:调用子单元,用于调用所述目标页面的跳转协议。发送子单元,用于向所述目标页面发送所述跳转协议。

作为本实施例一种可选的实现方式,所述发送单元704也可以包括:提取子单元,用于在所述已存储页面的标识符与所述第n级页面的标识符一致时,提取所述第n级页面的回调参数,所述回调参数在第n-1级页面跳转至第n级页面时被添加至所述第n级页面。发送子单元,用于向所述目标页面发送所述回调参数。

作为本实施例一种可选的实现方式,所述发送单元704也可以包括:查找子单元,用于在所述已存储页面的标识符与所述第n级页面的标识符不一致时,在导航堆栈中的已存储页面中查找第n-1级页面。发送子单元,用于向所述第n-1级页面发送页面返回指令。

作为本实施例一种可选的实现方式,所述发送单元704也可以包括:查找子单元,用于在所述已存储页面的标识符与所述第n级页面的标识符不一致时,在导航堆栈中的已存储页面中查找栈底的首页面。发送子单元,用于向所述栈底的首页面发送页面返回指令。

发明实施例提供的页面返回装置,可以用于执行以上任一实施例提供的页面返回方法,其实现原理与上述方法的原理类似,此处不再赘述。

请参阅图8,为本发明提供的一种电子设备的硬件结构示意图。该电子设备包括存储器1001和处理器1002。存储器1001用于存储程序指令,处理器1002用于调用并执行所述存储器中的程序指令,以实现以上任一方法实施例所提供的页面返回方法。

本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现本发明提供的页面返回方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于页面返回装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1