导航回退的方法和控件与流程

文档序号:18474976发布日期:2019-08-20 20:53阅读:284来源:国知局
导航回退的方法和控件与流程

本发明涉及计算机技术领域,尤其涉及一种导航回退的方法和控件。



背景技术:

目前已经进入移动app(应用程序,application)时代,使用app的人越来越多,各种app层出不穷。app上的业务越来越多,功能也越来越复杂。比如一个电商app的购买流程,从浏览商品到商品详情再到下单支付,要跳转五六个页面,回退时需要一个页面一个页面地返回,操作过程非常麻烦。

为了解决页面回退问题,现有技术中的回退方案主要有以下几种:

(1)设置返回按钮,点击返回按钮可以回到上一个页面;

(2)设置首页按钮,点击首页按钮可以回到app首页;

(3)设置其他按钮,以实现点击该按钮回到某个页面的功能。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

(1)对于设置返回按钮的方案:若跳转页面比较多,需要一步一步地返回,回退页面的过程比较繁琐;

(2)对于设置首页按钮或者其他按钮以回退到某一页面的方案:由于可选择的跳转页面固定,因此跳转灵活性差;需要单独增加一个按钮,占用导航显示空间;增加的按钮的使用率不高,造成导航栏的空间浪费。



技术实现要素:

有鉴于此,本发明实施例提供一种导航回退的方法和控件,可以根据用户的选择确定跳转页面,使导航回退更加灵活方便;通过非按钮事件即可触发导航回退,无需增加单独的按钮,从而为导航栏节省了按钮的空间,利于提高导航功能区域的利用率。

为实现上述目的,根据本发明实施例的一个方面,提供了一种导航回退的方法,包括:

确定待跟踪的导航控件之后,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈;

当监听到预设的第一触发事件时,可视化展示所述标题栈,将用户从所述标题栈中选择的标题作为待回退标题;

获取与所述待回退标题对应的页面容器,从当前页面回退至所述页面容器对应的页面。

可选地,确定待跟踪的导航控件之后,还包括:以key-value的形式保存跳转的每个页面容器的标题及其对应的页面容器形成标题和页面容器的映射表;

获取与所述待回退标题对应的页面容器,包括:根据所述待回退标题和所述映射表,获取与所述待回退标题对应的容器标识;依据所述容器标识,获取与所述待回退标题对应的页面容器。

可选地,采用代码混淆机制形成标题栈和/或形成标题和页面容器的映射表。

可选地,采用异步方式形成标题栈和/或形成标题和页面容器的映射表。

可选地,本发明实施例的导航回退的方法还包括:

当监听到预设的第二触发事件时,将所述标题栈中标题索引次大的标题作为所述待回退标题;第二触发事件为所述导航控件的返回事件;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,从当前页面回退至所述页面容器对应的页面之后,还包括:

从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除;

其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,采用代码混淆机制执行如下步骤:

从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除。

可选地,采用弱引用方式确定待跟踪的导航控件。

可选地,基于所述页面记录进行导航回退之后,还包括:

若所述待回退标题的标题索引为所有标题索引中的最小值,则清空所述标题栈、所述映射表和所述弱引用;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,可视化展示所述标题栈,包括:采用模态框将所述标题栈可视化显示到当前页面的最上层。

可选地,所述模态框采用横向列表或纵向列表展示所述标题栈中的标题。

可选地,当对所述模态框执行预设操作、或者点击所述模态框的周边区域时,所述模态框从当前页面中消除。

可选地,所述导航回退的方法采用单例模式实现。

可选地,第一触发事件为非按钮事件。

根据本发明实施例的再一个方面,提供一种导航回退控件,包括:

压入模块,确定待跟踪的导航控件之后,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈;

展示模块,当监听到预设的第一触发事件时,可视化展示所述标题栈;

确定模块,将用户从所述标题栈中选择的标题作为待回退标题;

跳转模块,获取与所述待回退标题对应的页面容器,从当前页面回退至所述页面容器对应的页面。

可选地,所述压入模块还用于,确定待跟踪的导航控件之后,以key-value的形式保存跳转的每个页面容器的标题及其对应的页面容器形成标题和页面容器的映射表;

所述跳转模块根据所述待回退标题和所述映射表,获取与所述待回退标题对应的容器标识;依据所述容器标识,获取与所述待回退标题对应的页面容器。

可选地,所述压入模块采用代码混淆机制形成标题栈和/或形成标题和页面容器的映射表。

可选地,所述压入模块采用异步方式形成标题栈和/或形成标题和页面容器的映射表。

可选地,所述确定模块还用于:

当监听到预设的第二触发事件时,将所述标题栈中标题索引次大的标题作为所述待回退标题;第二触发事件为所述导航控件的返回事件;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,所述压入模块还用于:

从当前页面回退至所述页面容器对应的页面之后,从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除;

其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,所述压入模块采用代码混淆机制执行如下步骤:

从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除。

可选地,本发明实施例的导航回退控件还包括:绑定模块,采用弱引用方式确定待跟踪的导航控件。

可选地,本发明实施例的导航回退控件还包括:所述清除模块,基于所述页面记录进行导航回退之后,若所述待回退标题的标题索引为所有标题索引中的最小值,则清空所述标题栈、所述映射表和所述弱引用;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,所述展示模块采用模态框将所述标题栈可视化显示到当前页面的最上层。

可选地,所述模态框采用横向列表或纵向列表展示所述标题栈中的标题。

可选地,所述展示模块还用于:当对所述模态框执行预设操作、或者点击所述模态框的周边区域时,从当前页面中消除所述模态框。

可选地,所述导航回退控件采用单例模式实现。

可选地,第一触发事件为非按钮事件。

根据本发明实施例的另一个方面,提供一种导航回退的电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的导航回退的方法。

根据本发明实施例的还一个方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的导航回退的方法。

上述发明中的一个实施例具有如下优点或有益效果:通过非按钮事件触发导航回退,无需增加单独的按钮,节省导航空间,利于提高导航栏的利用率;将用户从标题栈中选择的标题作为待回退标题,使导航回退更加灵活方便。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的导航回退的方法的主要流程的示意图;

图2是导航控件的技术架构的示意图;

图3是栈的技术架构的示意图;

图4是根据本发明实施例的导航回退控件的装置的主要模块的示意图;

图5是本发明可选实施例的导航回退控件的技术架构的示意图;

图6是本发明可选实施例中的可视化展示标题栈的示意图;

图7是本发明实施例可以应用于其中的示例性系统架构图;

图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

应当说明的是,在不违背本发明精神的情况下,本发明每个实施例中提及的各个技术特征可以任何组合。

本发明实施例中,在用户使用导航控件的导航功能浏览页面时,会记录用户基于当前的导航控件浏览过的页面。当用户想回退到某一个页面的时候,通过第一触发事件触发导航回退。这时候将展示浏览过页面的标题给用户,供用户选择。用户选择了某一个标题之后,会跳转到对应这个标题的页面。

图1是根据本发明实施例的导航回退的方法的主要流程的示意图,如图1所示,导航回退的方法,包括:

步骤s101、确定待跟踪的导航控件之后,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈;

步骤s102、当监听到预设的第一触发事件时,可视化展示所述标题栈,将用户从所述标题栈中选择的标题作为待回退标题;

步骤s103、获取与所述待回退标题对应的页面容器,从当前页面回退至所述页面容器对应的页面。

可选地,第一触发事件为非按钮事件。非按钮事件是指不基于按钮的操作事件,例如在当前页面一定距离范围内执行的手势动作、或摇晃手机、或在当前页面左右滑动等,或者基于导航控件的操作按钮的操作事件,例如双击或者重压导航控件的返回按钮。

通过非按钮事件触发导航回退,无需增加单独的按钮,能够节省导航栏的显示空间,利于提高导航功能区域的利用率。本发明实施例中,将用户从标题栈中选择的标题作为待回退标题,因此具体回退到哪个页面可以由用户自己选择,使导航回退更加灵活方便。

本发明实施例的导航回退的方法是基于系统的导航控件实现的。图2是导航控件的技术架构的示意图,图中矩形框表示导航控件的属性元素,圆框表示导航控件提供的功能。如图2所示,导航控件主要由容器数组和操作按钮(包括返回按钮,以及各种自定义的功能按钮等)组成,主要提供了pop和push方法。页面容器,是指用来显示界面和接收视图处理的单元。导航控件的实现仅仅是针对页面容器,不能存储自定义的其它元素。导航控件提供的pop和push方法如下:

(1)push方法提供了页面跳转新页面的功能,并将新的页面容器加入到容器数组里面;

(2)pop方法提供了从当前页面回退到某一个老页面的跳转功能,并将该老页面以后的容器(不包括跳转到的那个老页面)从容器数组里删除掉。

在一些实施例中,导航回退的方法可以采用单例模式实现,即每个导航回退的方法管理一个导航控件,处理导航控件的回退操作。单例模式的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证一个类只有一个实例,即一个类只有一个对象实例。本发明实施例的导航回退方法使用范围广泛,即可以实现全局访问,所以采用单例模式可以更加方便地进行导航回退。

本发明实施例将用户基于导航控件跳转的每个页面容器的标题加入栈中形成标题栈。图3是栈的技术架构的示意图,图中矩形框表示栈控件的属性元素,圆框表示栈控件提供的功能。如图3所示,栈控件主要由元素数组组成,并提供了pop和push方法。栈控件的功能跟导航控件的部分功能类似,与导航控件的实现仅仅是针对页面容器、不能存储自定义的其它元素相比,栈空间可以存储自定义的元素。栈控件提供的pop和push方法如下:

(1)push方法提供了将任意类型的元素按顺序加入到元素数组里面。例如:最先加入的元素数组的元素索引为0,之后加入的元素索引为1,在之后加入的索引以此类推,每次加1;

(2)pop方法提供两个功能:

1)将元素数组里面元素索引最大的元素删除掉;

2)将指定的元素和比该元素的元素索引大的元素删除掉。

确定待跟踪的导航控件之后还包括:以键key-值value的形式保存跳转的每个页面容器的标题及其对应的页面容器形成标题和页面容器的映射表。获取与所述待回退标题对应的页面容器可以包括:根据所述待回退标题和所述映射表,获取与所述待回退标题对应的容器标识;依据所述容器标识,获取与所述待回退标题对应的页面容器。

标题和页面容器的映射表是一个以key-value形式存储的字典类型数据。key为标题,value为容器标识。当页面需要跳转到某一个页面的时候,需要提供跳转到该页面的页面容器,本发明实施例中建立映射表并通过映射表获取与待回退标题对应的页面容器,不用遍历整个导航控件的容器数组,就可以直接根据标题获取到对应的页面容器,从而加快回退至某个页面的处理速度,使回退过程中页面更加流畅。

本发明实施例中,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈的步骤和/或以键key-值value的形式保存跳转的每个页面容器的标题及其对应的页面容器形成标题和页面容器的映射表的步骤也可以通过调用push方法实现。为了避免在调用导航控件的push方法后再去调用本发明实施例的push方法,可以采用代码混淆机制形成标题栈和/或形成标题和页面容器的映射表。

代码混淆机制(method-swizzling)就是对已有的代码进行重新组织和处理,使得混淆后的代码与处理前代码完成相同的功能。被混淆过的代码仍然遵照原来的档案格式和指令集,执行结果也与混淆前一样。采用代码混淆机制调用本发明实施例的push方法,即在调用导航控件的push方法的时候,根据页面容器获得到该页面容器的标题,并自动调用本发明实施例的push方法。

采用代码混淆机制,一方面无需单独设置调用本发明实施例的push方法的调用代码,开发人员仅仅像常规开发一样调用导航控件的方法,调用起来方便高效;另一方面能够保证标题栈以及映射表与导航控件中的容器数组保持同步和对应,防止由于二者不同步导致的回退失败。如果单独设置调用本发明实施例的push方法和pop方法的调用代码,调用代码容易有漏调,导致误调的情况,从而导致数据的不对应,回退失败。

本发明实施例中,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈的步骤和/或以键key-值value的形式保存跳转的每个页面容器的标题及其对应的页面容器形成标题和页面容器的映射表的步骤也可以通过调用push方法实现。在一些可选的实施例中,采用异步方式形成标题栈和/或形成标题和页面容器的映射表,即调用本发明实施例的push方法与调用导航控件的push方法异步进行。采用异步方式,能避免形成标题栈和/形成映射表步骤对回退的影响,使得调用本发明实施例的push方法不影响跳转到待回退页面的效率,进而使回退过程中页面更加流畅。

本发明实施例的导航回退的方法还可以包括:当监听到预设的第二触发事件时,将所述标题栈中标题索引次大的标题作为所述待回退标题;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。第二触发事件为导航控件的返回事件,即基于导航控件浏览页面时能够从当前页面跳转至当前页面的前一页面的事件,例如点击导航控件的返回按钮。监听到第二触发事件时将当前页面返回至前一个页面,能够提高本发明实施例的导航回退方法的应用范围。

从当前页面回退至所述页面容器对应的页面之后,还可以包括:从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。回退之后删除待回退标题、以及标题索引大于待回退标题的标题索引的标题,能够根据用户的操作行为实时更新标题栈,确保待回退标题为标题栈中的栈顶元素。

本发明实施例中,回退之后删除待回退标题、以及标题索引大于待回退标题的标题索引的标题的步骤也可以通过调用pop方法实现。为了避免在调用导航控件的pop方法后再去调用本发明实施例的pop方法,可以采用代码混淆机制执行如下步骤:从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除。采用代码混淆机制调用本发明实施例的pop方法,即在调用导航控件的pop方法的时候,根据页面容器获得到该页面容器的标题,并自动调用本发明实施例的pop方法。采用代码混淆机制,一方面无需单独设置调用本发明实施例的push方法的调用代码,开发人员仅仅像常规开发一样调用导航控件的方法,调用起来方便高效;另一方面能够保证标题栈以及映射表与导航控件中的容器数组保持同步和对应,防止由于二者不同步导致的回退失败。如果单独设置调用本发明实施例的push方法和pop方法的调用代码,调用代码容易有漏调,导致误调的情况,从而导致数据的不对应,回退失败。

在可选的实施例中,采用弱引用方式确定待跟踪的导航控件。弱引用是指不重新生成、不占用系统空间的引用某一元素的方式。例如,将待跟踪的导航控件赋值至采用本发明实施例的导航回退的方法的执行主体。采用弱引用的方式将本发明实施例的导航回退的方法与待跟踪的导航控件绑定在一起,可以不占用系统空间。此外,还可以为本发明实施例的导航回退的方法添加触发事件,例如,将双击或重压导航控件的返回按钮的事件添加为第一触发事件,当第一触发事件发生后,可视化展示标题栈中的标题;再例如,将单击导航控件的返回按钮的事件添加为第二触发事件,当第二触发事件发生后,调用本发明实施例的pop方法。

基于所述页面记录进行导航回退之后,还可以包括:若所述待回退标题的标题索引为所有标题索引中的最小值,则清空所述标题栈、所述映射表和所述弱引用;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。本发明实施例能够在回退至用户浏览的第一个页面后,结束对导航控件的跟踪、并清除跟踪过程产生的数据,从而及时释放存储空间。

在一些实施例中,可以通过采用模态框将所述标题栈可视化显示到当前页面的最上层的方式可视化展示所述标题栈。模态框是指除非采取有效的关闭手段,用户鼠标点或者输入光标一直停留在其上的对话框。模态框可以采用横向列表或纵向列表展示所述标题栈中的标题。当对所述模态框执行预设操作,例如点击模态框中的索引按钮,或者点击所述模态框的周边区域时,所述模态框可以从当前页面中消除。

图4是根据本发明实施例的导航回退控件的装置的主要模块的示意图。如图4所示,导航回退控件400包括:

压入模块401,确定待跟踪的导航控件之后,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈;

展示模块402,当监听到预设的第一触发事件时,可视化展示所述标题栈;

确定模块403,将用户从所述标题栈中选择的标题作为待回退标题;

跳转模块404,获取与所述待回退标题对应的页面容器,从当前页面回退至所述页面容器对应的页面。

可选地,所述压入模块还用于,确定待跟踪的导航控件之后,以key-value的形式保存跳转的每个页面容器的标题及其对应的页面容器形成标题和页面容器的映射表;

所述跳转模块根据所述待回退标题和所述映射表,获取与所述待回退标题对应的容器标识;依据所述容器标识,获取与所述待回退标题对应的页面容器。

可选地,所述压入模块采用代码混淆机制形成标题栈和/或形成标题和页面容器的映射表。

可选地,所述压入模块采用异步方式形成标题栈和/或形成标题和页面容器的映射表。

可选地,所述确定模块还用于:

当监听到预设的第二触发事件时,将所述标题栈中标题索引次大的标题作为所述待回退标题;第二触发事件为所述导航控件的返回事件;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,所述压入模块还用于:

从当前页面回退至所述页面容器对应的页面之后,从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除;

其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,所述压入模块采用代码混淆机制执行如下步骤:

从所述标题栈中删除所述待回退标题;以及,确定标题索引大于所述待回退标题的标题索引的标题,将其从所述标题栈中删除。

可选地,本发明实施例的导航回退控件还包括:绑定模块,采用弱引用方式确定待跟踪的导航控件。

可选地,本发明实施例的导航回退控件还包括:所述清除模块,基于所述页面记录进行导航回退之后,若所述待回退标题的标题索引为所有标题索引中的最小值,则清空所述标题栈、所述映射表和所述弱引用;其中,所述标题栈中每个标题的标题索引按照自增的方式设置。

可选地,所述展示模块采用模态框将所述标题栈可视化显示到当前页面的最上层。

可选地,所述模态框采用横向列表或纵向列表展示所述标题栈中的标题。

可选地,所述展示模块还用于:当对所述模态框执行预设操作、或者点击所述模态框的周边区域时,从当前页面中消除所述模态框。

可选地,所述导航回退控件采用单例模式实现,即一个导航回退控件管理一个待跟踪的导航控件,处理导航控件的回退操作。

可选地,第一触发事件为非按钮事件。

实际应用过程中,在第一次使用导航回退控件的时候,需要进行初始化操作,将导航回退控件的属性元素初始化。

图5是本发明可选实施例的导航回退控件的技术架构的示意图,图中矩形框表示导航回退控件的属性元素,圆框表示导航回退控件提供的功能。如图5所示,导航回退控件主要有导航的引用、标题索引视图、标题和页面容器的映射表、标题栈、以及图中所示的各种功能。

导航回退控件的属性元素介绍:

(1)导航的引用:当需要跟踪一个导航控件的时候,将该导航控件赋值为导航的引用;

(2)标题栈:一个存放标题(每个页面容器都是有标题的,标题描述了页面容器的功能)的栈控件;

(3)标题和页面容器的映射表:是一个以key-value形式存储的字典类型数据。key为标题,value为容器标识;

(4)标题索引视图:将标题栈的内容呈现到界面上的视图元素。

导航回退控件的功能介绍:

(1)push方法:将新跳转的页面容器的标题加入到标题栈中,并将新跳转页面容器的标题和该页面容器以key-value的形式加入到标题和页面容器的映射表中。整个操作异步执行,这样的好处是不影响跳转到新界面的效率,提高了页面的流畅度。该push功能是在执行导航控件的push方法时候调用。为了不让使用本发明实施例的导航回退控件的开发人员在调用导航控件的push方法后再去调用导航回退控件的push方法,可以采用代码混淆机制,即在调用导航控件的push方法的时候,根据页面容器获得到该页面容器的标题,并自动调用导航回退控件的push方法;

(2)pop方法:调用栈控件的pop方法,将标题栈中最后一个标题删除掉或者将指定的标题及该标题以后的标题元素从栈中删除掉。该方法实现与导航回退控件的push方法类似,可以采用代码混淆机制,混淆导航控件的pop方法。混淆后异步执行导航回退控件的pop方法;

(3)show方法:将标题索引视图以模态框的形式显示到当前页面的最上层;

(4)hide方法:当点击标题索引视图上的索引或者标题索引视图的周边区域的时候调用,达到将标题索引视图从当前页面清除掉的功能;

(5)bind方法:将导航控件和导航回退控件绑定在一起,具体是将待跟踪的导航控件赋值给导航回退控件的导航的引用,并为导航控件的返回按钮增加单击手势事件和双击手势事件。单击手势事件发生后,调用导航回退控件的pop方法,双击手势事件发生后将调用导航回退控件的show方法;

(6)clear方法:清空导航的引用、标题栈和标题和容器映射表;

(7)jump方法:当点击标题索引视图上的索引时候,触发jump方法。jump方法提供退回到当前点击的标题所对应页面容器的功能。jump方法将根据当前点击的标题去标题和页面容器的映射表中映射得到对应的页面容器,并将对应的页面容器为参数,通过导航的引用传递给导航控件的pop方法,回退到对应该页面容器的页面。如果当前点击的标题对应的标题索引为0(此处以0代表标题栈中的所有标题索引的最小值),则调用导航回退控件的clear方法。

图6是本发明可选实施例中的可视化展示标题栈的示意图。以下以电商购买的过程为例,结合图6对本发明实施例的导航回退控件机械能阐述:

假设某一物品的购买流程对应的页面依次为:首页→产品列表→商品详情→下订单→支付,即,进入首页,进入产品列表,寻找要购买的商品,并查看商品的具体情况,选择该商品下订单,发起支付,购买该商品。

图6是购买的过程中进入商品详情的app界面的状态。其中,

1.包含“首页”和“产品列表”的部分为导航回退控件的标题索引视图。刚进入商品详情的页面的时候,标题索引视图是不显示的。

2.整个商品详情为一个页面容器对应的页面。

3.“首页”和“产品列表”和“商品详情”为导航回退控件的标题栈中的标题。

4.“返回”为导航控件的返回按钮。

下面将根据图6进行阐述:

1.若在首页的时候决定跟踪购买过程,则调用导航回退控件的bind接口,实现跟踪导航控件的目的;

2.点击“下订单”,将触发导航控件的push接口,自动触发导航回退控件的push接口(压入接口)。将当前页面的标题或者描述传递给导航控件和导航回退控件的push接口,以备显示标题索引的时候使用;

3.单击返回按钮,将触发导航控件的pop接口,自动触发导航回退控件的pop接口,回退至下订单的前一个页面,即商品详情的页面;

4.双击返回按钮,将调用导航回退控件的show方法,显示导航回退控件的标题索引视图;

5.点击标题索引视图中的某个标题,调用导航回退控件的jump方法,回退到对应的页面,并隐藏导航回退控件;

6.点击标题索引视图的周边区域,也会使导航回退控件隐藏。

根据本发明实施例的另一个方面,提供一种导航回退的电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的导航回退的方法。

图7示出了可以应用本发明实施例的导航回退的方法或导航回退的装置的示例性系统架构700。

如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。

需要说明的是,本发明实施例所提供的导航回退的方法一般由服务器705执行,相应地,导航回退的装置一般设置于服务器705中。

应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,计算机系统800包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分y08加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram803中,还存储有系统800操作所需的各种程序和数据。cpu801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(cpu)801执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括:压入模块,确定待跟踪的导航控件之后,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈;展示模块,当监听到预设的第一触发事件时,可视化展示所述标题栈;确定模块,将用户从所述标题栈中选择的标题作为待回退标题;第一触发事件为非按钮事件;跳转模块,获取与所述待回退标题对应的页面容器,从当前页面回退至所述页面容器对应的页面。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如确定模块还可以被描述为“获取与所述待回退标题对应的页面容器,从当前页面回退至所述页面容器对应的页面的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:

确定待跟踪的导航控件之后,将用户基于所述导航控件跳转的每个页面容器的标题加入栈中形成标题栈;

当监听到预设的第一触发事件时,可视化展示所述标题栈,将用户从所述标题栈中选择的标题作为待回退标题;第一触发事件为非按钮事件;

获取与所述待回退标题对应的页面容器,从当前页面回退至所述页面容器对应的页面。

根据本发明实施例的技术方案,具有如下有益效果:

1)通过非按钮事件触发导航回退,无需增加单独的按钮,节省导航空间,利于提高导航栏的利用率;

2)具体回退到哪个页面由用户自由选择,导航回退更加灵活方便;

3)通过映射表确定页面容器,无需遍历导航控件中的容器数组,可以加快回退某个页面的处理速度,使回退过程中页面更加流畅;

4)采用代码混淆机制,一方面无需单独设置调用代码,方便高效;另一方面能够保证标题栈与导航控件中的容器数组保持同步,防止由于二者不同步导致的回退失败;

5)采用异步方式,能避免形成标题栈和/形成映射表步骤对回退的影响,使回退过程中页面更加流畅;

6)监听到导航控件的返回事件时将当前页面返回至前一个页面,能够提高导航回退方法的应用范围;

7)回退之后删除待回退标题、以及标题索引大于待回退标题的标题索引的标题,能够根据用户的操作行为实时更新标题栈,确保待回退标题为标题栈中的栈顶元素;

8)采用弱引用的方式,可以不占用系统空间;

9)在回退至用户浏览的第一个页面后,结束对导航控件的跟踪、清除跟踪过程产生的数据,能及时释放存储空间。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

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