网页消息返回方法和网页消息返回系统与流程

文档序号:11950480阅读:414来源:国知局
网页消息返回方法和网页消息返回系统与流程

本发明涉及计算机技术领域,具体而言,涉及一种网页消息返回方法和一种网页消息返回系统。



背景技术:

在相关技术中,基于浏览器或者webview(网页视图)开发的网页应用,在界面导航设计中,只能通过进入新页面来提示当前页面的处理结果,并只能在新页面展示之前的操作结果。同时,浏览器或者webview的历史记录只能不断的增加,在提示业务完操作后,无法自动返回到应用的主界面。

另外,由于w3c定义的安全规范,浏览器或者webivew只允许Javascript(直译式脚本语言)获取当前历史记录长度,不允许Javascript程序获取系统历史记录中每项的内容,更不允许Javascript修改系统的历史记录长度。所以,以传统的计算机的网页应用设计方式无法达到移动原生应用导航的体验效果。

再者,页面间的数据传递只能通过url的参数传递向前传递,如果页面使用回退的方式返回主界面,那么浏览器或者webview是没有提供相关机制的,在设计时,如果网页应用使用业务强相关的参数传递又不具备通用性和可扩展性,则十分不利于代码的维护和复用。

目前,虽然返回事件监听器和系统历史记录读取都可以通过改变webview的nativie代码来实现,但这样的处理无法实现功能模块的移植,在不同的终端平台下面需要修改出不同的webview控件,难以在通用的浏览器上面使用。

因此,如何提供一种高体验、低成本的网页间的返回消息传递方式,成为目前亟待解决的技术问题。



技术实现要素:

本发明正是基于上述问题,提出了一种新的技术方案,可以提供一种高体验低成本的网页间的返回消息传递方式。

有鉴于此,本发明的一方面提出了一种网页消息返回方法,包括:根据接收到的业务请求,读取源页面和目标页面的历史堆栈信息;根据读取到的所述源页面和所述目标页面的历史堆栈信息,确定所述业务请求所请求的业务修改内容;将所述业务修改内容以消息的形式写入网页应用程序的预设消息链表中。

在该技术方案中,在接收到业务请求后,源页面会确认需要返回的目标页面,并通过源页面和目标页面的历史堆栈信息,确定返回目标页面的长度,进而将通过业务请求确认的消息类型和消息内容等信息,插入到预设消息链表的消息队列中,并根据返回目标页面的长度,调用history.go(-n)语句执行返回操作。通过本技术方案,可以通过源页面和目标页面的历史堆栈信息,确定两者的距离,这个距离并不是物理意义上的距离,而是指源网页经多少层才生成目标网页,通过预设消息链表中存储的消息以及确定的两者距离,可以方便快捷地从目标网页返回源网页,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。

在上述技术方案中,优选地,所述源页面为所述目标页面的源页面;以及在所述将所述业务修改内容以消息的形式写入网页应用程序的预设消息链表中之后,还包括:通过所述目标页面从所述预设消息链表中读取并处理所述消息。

在该技术方案中,源页面可以直接将业务请求中改变的业务内容以消息的形式写入预设消息链表,目标页面也可以直接从预设消息链表中读取该消息,从而获取到业务请求所请求变更的业务内容,以便进行相应处理。通过本技术方案,可以避免网页应用程序中的页面间的返回跳转消息传递问题,使用户获得类原生应用程序的导航体验效果,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。其中,预设消息链表中的内容包括但不限于消息源页面名称、消息目标页面名称、消息类型、消息的处理函数体。

在上述技术方案中,优选地,还包括:根据接收到的记录命令,为所述网页应用程序的每个页面记录历史堆栈信息,并将所述每个页面的所述历史堆栈信息保存至所述网页应用程序的会话缓存中。

在该技术方案中,将网页的历史堆栈信息保存至网页应用程序的会话缓存中,从而可以方便地对网页的历史堆栈信息进行读取,解决了页面返回过程中无法读取或变动网页的历史堆栈信息问题,便于通过网页的历史堆栈信息与预设消息链表相结合完成消息返回传递。

在上述技术方案中,优选地,所述读取所述源页面和所述目标页面的历史堆栈信息,具体包括:检测所述源页面和所述目标页面是否都具有已记录的所述历史堆栈信息,其中,当检测结果为是时,读取所述源页面和所述目标页面的已记录的所述历史堆栈信息,当检测结果为否时,为所述源页面和所述目标页面中不具有已记录的所述历史堆栈信息的页面建立初始历史堆栈信息,并将所述初始历史堆栈信息保存至所述会话缓存中。

在该技术方案中,可以为不具有已记录的历史堆栈信息的页面建立初始历史堆栈信息,以便通过页面的历史堆栈信息与预设消息链表相结合完成消息返回传递,从而提升网页消息返回功能的通用性。

在上述技术方案中,优选地,所述通过所述目标页面从所述预设消息链表中读取并处理所述消息,包括:判断所述目标页面的所述历史堆栈信息的长度是否小于系统历史长度,以供根据判断结果确定是否更新所述目标页面的所述历史堆栈信息;根据更新后的或无需更新的所述历史堆栈信息,历遍所述预设消息链表,以供读取并处理存储在所述预设消息链表的所述消息。

在该技术方案中,可以根据实际情况确定目标页面的历史堆栈信息是否需要更新,以更好地适应实际情况。另外,在获得最新的历史堆栈信息后,可以结合历史堆栈信息与预设消息链表,将预设消息链表中的所有消息进行历遍以便返回源网页。

在上述技术方案中,优选地,所述根据判断结果确定是否更新所述目标页面的所述历史堆栈信息,具体包括:当所述判断结果为是时,将所述目标页面的名称项合并至所述目标页面的所述历史堆栈信息,以更新所述历史堆栈信息;当所述判断结果为否时,获取当前的所述系统历史长度,并在当前的所述系统历史长度的栈顶为所述目标页面的名称项时,删除所述目标页面的名称项后面的所有项,否则,将所述目标页面的名称项合并至所述目标页面的所述历史堆栈信息,以更新所述历史堆栈信息。

在该技术方案中,提供了更新历史堆栈信息的具体方式,其通过将目标页面置于栈顶,使得页面返回操作变得更加快捷简便,如果历史堆栈信息不需要更新,则可以直接将目标页面的名称项合并至历史堆栈信息中,从而完成历史堆栈信息更新,使得页面返回操作变得更加快捷简便,提升用户体验。

在上述技术方案中,优选地,所述消息的类型包括提示类型、确认类型、参数传递类型或信号量类型。

在该技术方案中,消息的类型包括但不限于提示类型、确认类型、参数传递类型或信号量类型,多种消息的类型使得将业务修改内容写入网页应用程序的预设消息链表的方式多种多样,便于适应用户的实际需求。

本发明的另一方面提出了一种网页消息返回系统,包括:读取单元,根据接收到的业务请求,读取源页面和目标页面的历史堆栈信息;消息确定单元,根据读取到的所述源页面和所述目标页面的历史堆栈信息,确定所述业务请求所请求的业务修改内容;链表更新单元,将所述业务修改内容以消息的形式写入网页应用程序的预设消息链表中。

在该技术方案中,在接收到业务请求后,源页面会确认需要返回的目标页面,并通过源页面和目标页面的历史堆栈信息,确定返回目标页面的长度,进而将通过业务请求确认的消息类型和消息内容等信息,插入到预设消息链表的消息队列中,并根据返回目标页面的长度,调用history.go(-n)语句执行返回操作。通过本技术方案,可以通过源页面和目标页面的历史堆栈信息,确定两者的距离,这个距离并不是物理意义上的距离,而是指源网页经多少层才生成目标网页,通过预设消息链表中存储的消息以及确定的两者距离,可以方便快捷地从目标网页返回源网页,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。

在上述技术方案中,优选地,所述源页面为所述目标页面的源页面;以及所述网页消息返回系统还包括:处理单元,在所述将所述业务修改内容以消息的形式写入网页应用程序的预设消息链表中之后,通过所述目标页面从所述预设消息链表中读取并处理所述消息。

在该技术方案中,源页面可以直接将业务请求中改变的业务内容以消息的形式写入预设消息链表,目标页面也可以直接从预设消息链表中读取该消息,从而获取到业务请求所请求变更的业务内容,以便进行相应处理。通过本技术方案,可以避免网页应用程序中的页面间的返回跳转消息传递问题,使用户获得类原生应用程序的导航体验效果,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。其中,预设消息链表中的内容包括但不限于消息源页面名称、消息目标页面名称、消息类型、消息的处理函数体。

在上述技术方案中,优选地,还包括:记录单元,根据接收到的记录命令,为所述网页应用程序的每个页面记录历史堆栈信息,并将所述每个页面的所述历史堆栈信息保存至所述网页应用程序的会话缓存中。

在该技术方案中,将网页的历史堆栈信息保存至网页应用程序的会话缓存中,从而可以方便地对网页的历史堆栈信息进行读取,解决了页面返回过程中无法读取或变动网页的历史堆栈信息问题,便于通过网页的历史堆栈信息与预设消息链表相结合完成消息返回传递。

在上述技术方案中,优选地,所述读取单元具体用于:检测所述源页面和所述目标页面是否都具有已记录的所述历史堆栈信息,其中,当检测结果为是时,读取所述源页面和所述目标页面的已记录的所述历史堆栈信息,当检测结果为否时,为所述源页面和所述目标页面中不具有已记录的所述历史堆栈信息的页面建立初始历史堆栈信息,并将所述初始历史堆栈信息保存至所述会话缓存中。

在该技术方案中,可以为不具有已记录的历史堆栈信息的页面建立初始历史堆栈信息,以便通过页面的历史堆栈信息与预设消息链表相结合完成消息返回传递,从而提升网页消息返回功能的通用性。

在上述技术方案中,优选地,所述处理单元包括:判断单元,判断所述目标页面的所述历史堆栈信息的长度是否小于系统历史长度,以供根据判断结果确定是否更新所述目标页面的所述历史堆栈信息;链表历遍单元,根据更新后的或无需更新的所述历史堆栈信息,历遍所述预设消息链表,以供读取并处理存储在所述预设消息链表的所述消息。

在该技术方案中,可以根据实际情况确定目标页面的历史堆栈信息是否需要更新,以更好地适应实际情况。另外,在获得最新的历史堆栈信息后,可以结合历史堆栈信息与预设消息链表,将预设消息链表中的所有消息进行历遍以便返回源网页。

在上述技术方案中,优选地,所述判断单元具体用于:当所述判断结果为是时,将所述目标页面的名称项合并至所述目标页面的所述历史堆栈信息,以更新所述历史堆栈信息,以及当所述判断结果为否时,获取当前的所述系统历史长度,并在当前的所述系统历史长度的栈顶为所述目标页面的名称项时,删除所述目标页面的名称项后面的所有项,否则,将所述目标页面的名称项合并至所述目标页面的所述历史堆栈信息,以更新所述历史堆栈信息。

在该技术方案中,提供了更新历史堆栈信息的具体方式,其通过将目标页面置于栈顶,使得页面返回操作变得更加快捷简便,如果历史堆栈信息不需要更新,则可以直接将目标页面的名称项合并至历史堆栈信息中,从而完成历史堆栈信息更新,使得页面返回操作变得更加快捷简便,提升用户体验。

在上述技术方案中,优选地,所述消息的类型包括提示类型、确认类型、参数传递类型或信号量类型。

在该技术方案中,消息的类型包括但不限于提示类型、确认类型、参数传递类型或信号量类型,多种消息的类型使得将业务修改内容写入网页应用程序的预设消息链表的方式多种多样,便于适应用户的实际需求。

通过以上技术方案,可以避免网页应用程序中的页面间的跳转消息传递问题,使用户获得类原生应用程序的导航体验效果,提升了用户体验,并通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。

附图说明

图1示出了根据本发明的一个实施例的网页消息返回方法的流程图;

图2示出了根据本发明的另一个实施例的网页消息返回方法的流程图;

图3示出了根据本发明的一个实施例的源页面发起消息返回的流程图;

图4示出了根据本发明的一个实施例的目标页面处理消息返回的流程图;

图5示出了根据本发明的一个实施例的网页消息返回系统的框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的一个实施例的网页消息返回方法的流程图。

如图1所示,根据本发明的一个实施例的网页消息返回方法,包括:

步骤102,根据接收到的业务请求,读取源页面和目标页面的历史堆栈信息。

步骤104,根据读取到的所述源页面和所述目标页面的历史堆栈信息,确定所述业务请求所请求的业务修改内容。

步骤106,将所述业务修改内容以消息的形式写入网页应用程序的预设消息链表中。

在该技术方案中,在接收到业务请求后,源页面会确认需要返回的目标页面,并通过源页面和目标页面的历史堆栈信息,确定返回目标页面的长度,进而将通过业务请求确认的消息类型和消息内容等信息,插入到预设消息链表的消息队列中,并根据返回目标页面的长度,调用history.go(-n)语句执行返回操作。通过本技术方案,可以通过源页面和目标页面的历史堆栈信息,确定两者的距离,这个距离并不是物理意义上的距离,而是指源网页经多少层才生成目标网页,通过预设消息链表中存储的消息以及确定的两者距离,可以方便快捷地从目标网页返回源网页,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。

在上述技术方案中,优选地,所述源页面为所述目标页面的源页面;以及在步骤106之后,还包括:通过所述目标页面从所述预设消息链表中读取并处理所述消息。

在该技术方案中,源页面可以直接将业务请求中改变的业务内容以消息的形式写入预设消息链表,目标页面也可以直接从预设消息链表中读取该消息,从而获取到业务请求所请求变更的业务内容,以便进行相应处理。通过本技术方案,可以避免网页应用程序中的页面间的返回跳转消息传递问题,使用户获得类原生应用程序的导航体验效果,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。其中,预设消息链表中的内容包括但不限于消息源页面名称、消息目标页面名称、消息类型、消息的处理函数体。

在上述技术方案中,优选地,还包括:根据接收到的记录命令,为网页应用程序的每个页面记录历史堆栈信息,并将每个页面的历史堆栈信息保存至网页应用程序的会话缓存中。

在该技术方案中,将网页的历史堆栈信息保存至网页应用程序的会话缓存中,从而可以方便地对网页的历史堆栈信息进行读取,解决了页面返回过程中无法读取或变动网页的历史堆栈信息问题,便于通过网页的历史堆栈信息与预设消息链表相结合完成消息返回传递。

在上述技术方案中,优选地,读取源页面和目标页面的历史堆栈信息,具体包括:检测源页面和目标页面是否都具有已记录的历史堆栈信息,其中,当检测结果为是时,读取源页面和目标页面的已记录的历史堆栈信息,当检测结果为否时,为源页面和目标页面中不具有已记录的历史堆栈信息的页面建立初始历史堆栈信息,并将初始历史堆栈信息保存至会话缓存中。

在该技术方案中,可以为不具有已记录的历史堆栈信息的页面建立初始历史堆栈信息,以便通过页面的历史堆栈信息与预设消息链表相结合完成消息返回传递,从而提升网页消息返回功能的通用性。

在上述技术方案中,优选地,所述通过所述目标页面从所述预设消息链表中读取并处理所述消息,包括:判断目标页面的历史堆栈信息的长度是否小于系统历史长度,以供根据判断结果确定是否更新目标页面的历史堆栈信息;根据更新后的或无需更新的历史堆栈信息,历遍预设消息链表,以供读取并处理存储在预设消息链表的消息。

在该技术方案中,可以根据实际情况确定目标页面的历史堆栈信息是否需要更新,以更好地适应实际情况。另外,在获得最新的历史堆栈信息后,可以结合历史堆栈信息与预设消息链表,将预设消息链表中的所有消息进行历遍以便返回源网页。

在上述技术方案中,优选地,根据判断结果确定是否更新目标页面的历史堆栈信息,具体包括:当判断结果为是时,将目标页面的名称项合并至目标页面的历史堆栈信息,以更新历史堆栈信息;当判断结果为否时,获取当前的系统历史长度,并在当前的系统历史长度的栈顶为目标页面的名称项时,删除目标页面的名称项后面的所有项,否则,将目标页面的名称项合并至目标页面的历史堆栈信息,以更新历史堆栈信息。

在该技术方案中,提供了更新历史堆栈信息的具体方式,其通过将目标页面置于栈顶,使得页面返回操作变得更加快捷简便,如果历史堆栈信息不需要更新,则可以直接将目标页面的名称项合并至历史堆栈信息中,从而完成历史堆栈信息更新,使得页面返回操作变得更加快捷简便,提升用户体验。

在上述技术方案中,优选地,所述消息的类型包括提示类型、确认类型、参数传递类型或信号量类型。

在该技术方案中,消息的类型包括但不限于提示类型、确认类型、参数传递类型或信号量类型,多种消息的类型使得将业务修改内容写入网页应用程序的预设消息链表的方式多种多样,便于适应用户的实际需求。

图2示出了根据本发明的另一个实施例的网页消息返回方法的流程图。

如图2所示,根据本发明的另一个实施例的网页消息返回方法,包括:

步骤202,建立页面历史堆栈,每次进入页面,页面都需要对该堆栈进行维护。其中,可通过mHistoryStack=sessionStorage.getItem(“HISTORY_STACK”)获取该堆栈内容。

步骤204,建立页面间消息传递链表,发送消息的页面(源页面)需要添加消息到该消息传递链表中,以便接收消息的页面(目标页面)接收。

步骤206,目标页面初始化时,根据需要监听的消息、页面间消息传递链表、页面历史堆栈等信息,统一处理后,响应源页面发送的消息。

步骤208,目标页面重新刷新历史堆栈和页面间消息传递链表数据。

具体地,如果mHistoryStack不存在,则新建mHistoryStack,并把当前页面做为子项添加到mHistoryStack中,并使用sessionStorage.setItem(“HISTORY_STACK”,mHistoryStack),写入会话中。

如果已存在mHistoryStack,则需要通过window、history、length等webview系统接口获取当前系统历史记录的长度n,同时获取mHistoryStack的长度m,比较m、n大小,若m大于n,则证明页面为返回页面而不是新进入页面,设置mHistoryStack.length等于n,否则把当前页面入栈mHistoryStack.push()。

在读取消息队列链表时,如果链表mMsgLink为null,则不进行处理,如果不为null,则遍历该链表,并比较每项msgItem.dstPageName是否与当前window.location相等。其中,如果相等,表示该消息为接受者为当前页面,当前页面处理该消息,根据msgItem.type类型,提示用户信息,这种方式的目的使开发者在开发webapp时,可以向历史记录的页面发送消息。

当页面在发送消息给返回给页面时,需要根据业务,确认返回页面的名称,读取mHistroayStack,根据mHistoryStack每项的页面名称,和业务需要返回的页面,确定需要返回的长度n。

另外,还需要新建消息项msgItem,设置msgItem项的类型和内容,msgItem.type和msgItem.data以及消息处理句柄msgItem.handle内容,插入mMessageLink中。并将mMessageLink写入到会话缓存中,最后,使用history.go(-n)语句,返回历史页面。

通过以上技术方案,可以避免网页应用程序中的页面间的跳转消息传递问题,使用户获得类原生应用程序的导航体验效果,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。

图3示出了根据本发明的一个实施例的源页面发起消息返回的流程图。

如图3所示,根据本发明的一个实施例的源页面发起消息返回的流程包括:

步骤302,根据业务需求,确认返回页面(目标页面)。

步骤304,读取历史记录堆栈,确认返回页面的长度。

步骤306,根据业务需求中请求的业务修改,确认需要给目标文件发送的消息类型和消息内容。

步骤308,将确定了消息类型和消息内容的消息插入到消息通知队列中,并根据需要返回的长度,调用history.go(-n)语句执行返回。

图4示出了根据本发明的一个实施例的目标页面处理消息返回的流程图。

如图4所示,根据本发明的一个实施例的目标页面处理消息返回的流程包括:

步骤402,读取historyTask(历史记录堆栈)。

步骤404,historyTask是否小于系统历史长度,当判断结果为是时,进入步骤406,当判断结果为否时,进入步骤408。

步骤406,把当前页面名称项加入到historyTask中。

步骤408,获取当前系统历史长度n。

步骤410,历史堆栈第n项的值与当前页面名称是否相等,当判断结果为是时,进入步骤412,当判断结果为否时,进入步骤406。

步骤412,删除historyTask中n+1及后面所有项。

步骤414,遍历页面间消息链表。

步骤416,读取并处理消息。

下面结合图2至图4具体描述本发明实施例的网页消息返回方法,其主要包括:

记录页面的历史堆栈信息,页面堆栈信息保存在webview的sessionStorage(会话缓存)中;记录页面之间消息传递信息,并在处理完信息后,在消息列表上,删除该消息记录,将消息信息保存于webview的sessionStorage中;进入新页面或者页面返回,页面在加载完毕后,需要对历史堆栈信息进行维护,如没有历史堆栈,则可以新建历史堆栈,并将新建的历史堆栈写入sessionStorage;进入新页面或者是页面返回,页面在加载完毕后,需要对消息列表进行遍历,并处理该页面消息,如无消息则不处理,并更新页面消息链表,其中所述的消息包括:提示用户消息、执行下步操作确认信息、提示用户确认的信息等。另外,当前页面如有需要,在返回历史堆栈的页面前,需要向页面间消息传递链表写入需要发送的消息。

其次,在整个业务的过程中,需要维护一个页面名称的记录堆栈,并将堆栈内容信息保存在sessionStorage中,页面在初始化时根据页面的名称压入堆栈;页面历史堆栈的维护需要区分新进入页面和从上一页面返回到当前页面这两种情况,并对这两种情况做不同的处理,其中,页面历史堆栈存储方法为先入后出,页面历史堆栈子项内容包括但不仅限于页面名称。

在整个业务的过程中,还需要维护一个页面间的消息传递链表,链表内容包括但不仅限于:消息源页面名称、消息目标页面名称、消息类型、消息的处理函数体。消息列表保存在sessionStorage中,比如,消息可以生产和消费,生产者需要确定该消息发送给目标页面的名称、类型,如果需要目标页面执行方法,那么消息体中,需要包含处理方法的实现。另外,消息类型有提示类型、确认类型、参数传递类型、信号量类型等。

目标页面在初始化时,需要先初始化接收消息处理方法,再进行消息列表的遍历处理,如果、消息被处理(消费)后、目标页面需要更新sessionStorage的消息队列、删除该消息。

区分新进入页面和返回页面,并对页面历史堆栈做不同处理;使用浏览器或者window、history、length等webview系统接口获取当前系统的页面历史记录长度。

根据该长度、当前页面名称、sessionStorage中的历史堆栈,可区分出当前的页面为首次进入还是返回页面,如果当前页面为新进入页面,需要把当前页面入栈到sessionStorage的历史记录堆栈中,如为返回页面、那么需要把sessionStorage中的历史记录堆栈去掉系统长度后的所有页面,确保当前页面处于栈顶,保证系统的历史记录长度与sessionStorage中的历史记录堆栈的长度相等。

网页间消息传递链表的消息类型可扩展数据类型,添加源页面名称,并重载消息处理方法,使其判断源页面和目标页面与当前页面需要处理的消息的源页面和目标页面参数一致后,再进行消息处理,使消息处理更为严格。

源页面可获得历史记录堆栈内容,从而可明确需要返回哪一目标页面、并且可使用消息链表为返回页面传递消息;目标页面可根据该消息类型、提示用户、警告用户、或者处理之前页面的处理结果。从而避免了传统浏览器的操作方式、只能往前提示消息,不断的页面加载,系统历史记录不断增加,造成需要退出应用时,用户需要不断的按下返回按键,造成不良好的用户体验。

源页面返回堆栈中的任意一个目标页面时,可从sessionStorage中读取历史堆栈信息,并根据当前堆栈的长度,返回目标页面在堆栈的位置,计算出需要返回的长度,并使用history.go的webview系统接口方式进行回滚。

目标页面启动时,可获取自身属性,并确定自身是新启动页面还是返回页面,如果为返回界面,并且有处理消息。目标页面先获历史记录堆栈,获取源页面信息、当前页面信息,刷新历史记录堆栈,使当前页面处于栈顶;再遍历消息链表,读取消息体,并删除链表中的对应项,以及根据消息体的类型,执行动作。

图5示出了根据本发明的一个实施例的网页消息返回系统的框图。

如图5所示,根据本发明的一个实施例的网页消息返回系统500,包括:读取单元502,根据接收到的业务请求,读取源页面和目标页面的历史堆栈信息;消息确定单元504,根据读取到的所述源页面和所述目标页面的历史堆栈信息,确定所述业务请求所请求的业务修改内容;链表更新单元506,将所述业务修改内容以消息的形式写入网页应用程序的预设消息链表中。

在该技术方案中,在接收到业务请求后,源页面会确认需要返回的目标页面,并通过源页面和目标页面的历史堆栈信息,确定返回目标页面的长度,进而将通过业务请求确认的消息类型和消息内容等信息,插入到预设消息链表的消息队列中,并根据返回目标页面的长度,调用history.go(-n)语句执行返回操作。通过本技术方案,可以通过源页面和目标页面的历史堆栈信息,确定两者的距离,这个距离并不是物理意义上的距离,而是指源网页经多少层才生成目标网页,通过预设消息链表中存储的消息以及确定的两者距离,可以方便快捷地从目标网页返回源网页,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。

在上述技术方案中,优选地,所述源页面为所述目标页面的源页面;以及网页消息返回系统500还包括:处理单元508,在所述将所述业务修改内容以消息的形式写入网页应用程序的预设消息链表中之后,通过所述目标页面从所述预设消息链表中读取并处理所述消息。

在该技术方案中,源页面可以直接将业务请求中改变的业务内容以消息的形式写入预设消息链表,目标页面也可以直接从预设消息链表中读取该消息,从而获取到业务请求所请求变更的业务内容,以便进行相应处理。通过本技术方案,可以避免网页应用程序中的页面间的返回跳转消息传递问题,使用户获得类原生应用程序的导航体验效果,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。其中,预设消息链表中的内容包括但不限于消息源页面名称、消息目标页面名称、消息类型、消息的处理函数体。

在上述技术方案中,优选地,还包括:记录单元510,根据接收到的记录命令,为网页应用程序的每个页面记录历史堆栈信息,并将每个页面的历史堆栈信息保存至网页应用程序的会话缓存中。

在该技术方案中,将网页的历史堆栈信息保存至网页应用程序的会话缓存中,从而可以方便地对网页的历史堆栈信息进行读取,解决了页面返回过程中无法读取或变动网页的历史堆栈信息问题,便于通过网页的历史堆栈信息与预设消息链表相结合完成消息返回传递。

在上述技术方案中,优选地,读取单元502具体用于:检测源页面和目标页面是否都具有已记录的历史堆栈信息,其中,当检测结果为是时,读取源页面和目标页面的已记录的历史堆栈信息,当检测结果为否时,为源页面和目标页面中不具有已记录的历史堆栈信息的页面建立初始历史堆栈信息,并将初始历史堆栈信息保存至会话缓存中。

在该技术方案中,可以为不具有已记录的历史堆栈信息的页面建立初始历史堆栈信息,以便通过页面的历史堆栈信息与预设消息链表相结合完成消息返回传递,从而提升网页消息返回功能的通用性。

在上述技术方案中,优选地,处理单元508包括:判断单元5082,判断目标页面的历史堆栈信息的长度是否小于系统历史长度,以供根据判断结果确定是否更新目标页面的历史堆栈信息;链表历遍单元5084,根据更新后的或无需更新的历史堆栈信息,历遍预设消息链表,以供读取并处理存储在预设消息链表的消息。

在该技术方案中,可以根据实际情况确定目标页面的历史堆栈信息是否需要更新,以更好地适应实际情况。另外,在获得最新的历史堆栈信息后,可以结合历史堆栈信息与预设消息链表,将预设消息链表中的所有消息进行历遍以便返回源网页。

在上述技术方案中,优选地,判断单元5082具体用于:当判断结果为是时,将目标页面的名称项合并至目标页面的历史堆栈信息,以更新历史堆栈信息,以及当判断结果为否时,获取当前的系统历史长度,并在当前的系统历史长度的栈顶为目标页面的名称项时,删除目标页面的名称项后面的所有项,否则,将目标页面的名称项合并至目标页面的历史堆栈信息,以更新历史堆栈信息。

在该技术方案中,提供了更新历史堆栈信息的具体方式,其通过将目标页面置于栈顶,使得页面返回操作变得更加快捷简便,如果历史堆栈信息不需要更新,则可以直接将目标页面的名称项合并至历史堆栈信息中,从而完成历史堆栈信息更新,使得页面返回操作变得更加快捷简便,提升用户体验。

在上述技术方案中,优选地,所述消息的类型包括提示类型、确认类型、参数传递类型或信号量类型。

在该技术方案中,消息的类型包括但不限于提示类型、确认类型、参数传递类型或信号量类型,多种消息的类型使得将业务修改内容写入网页应用程序的预设消息链表的方式多种多样,便于适应用户的实际需求。

以上结合附图详细说明了本发明的技术方案,通过以上技术方案,可以避免网页应用程序中的页面间的跳转消息传递问题,使用户获得类原生应用程序的导航体验效果,提升了用户体验,同时,通过预设消息列表传递消息也避免了在不同终端的平台、浏览器间修改网页视图控件的问题,提升了网页消息返回功能的通用性,节约了成本。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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