页面处理方法、装置、电子设备及存储介质与流程

文档序号:31846256发布日期:2022-10-18 23:53阅读:47来源:国知局
页面处理方法、装置、电子设备及存储介质与流程

1.本公开涉及计算机领域,尤其涉及一种页面处理方法、装置、电子设备及存储介质。


背景技术:

2.在应用程序内部打开h5(hypertext markup language 5,第5代互联网超文本标记语言)页面的场景中,由于h5页面经常出现诸如动效、音效、游戏、跑马灯等元素,而此类元素往往比较消耗浏览器性能,故需要在页面离开、页面销毁、或者页面隐藏等时机销毁一些占用内存的元素,并在页面重现时再重新执行h5页面初始化逻辑。
3.在多种场景下都可能触发h5页面的显示和隐藏,例如:收起应用程序、应用程序执行前后台切换、应用程序的端内页面和h5页面切换、h5页面之间的跳转和h5页面之间的返回等场景。
4.相关技术中,往往需要开发者针对各个页面的各种场景单独开发相应的页面处理逻辑,以执行页面的显示或者隐藏处理,这种处理方式造成重复性开发,导致页面框架臃肿,代码数据冗余,并且开发效率低下。


技术实现要素:

5.本公开提供一种页面处理方法、装置、电子设备及存储介质,以至少解决相关技术中重复性开发,导致页面框架臃肿,代码数据冗余,并且开发效率低下的问题。本公开的技术方案如下:根据本公开实施例的第一方面,提供一种页面处理方法,包括:通过预先构造的钩子函数,对当前应用程序和在所述当前应用程序内打开的目标页面进行监听,其中,所述目标页面区别于所述当前应用程序的页面;在监听到目标事件的情况下,基于所述目标事件确定页面处理方式,其中,所述目标事件包括所述当前应用程序的目标事件或者所述目标页面的目标事件,所述页面处理方式包括显示处理方式或者隐藏处理方式;通过所述页面处理方式所指示的页面处理器,进行页面处理,所述页面处理器包括显示页面处理器或者隐藏页面处理器。
6.在其中一个实施例中,所述基于所述目标事件确定页面处理方式,包括:基于所述目标事件,确定可见状态属性值和隐藏状态属性值;根据所述可见状态属性值和所述隐藏状态属性值,确定所述目标事件对应的页面处理方式;其中,所述可见状态属性值包括第一可见属性值或者第二可见属性值,所述隐藏状态属性值包括第一布尔值或者第二布尔值,所述第一可见属性值用于表征页面对用户可见,所述第二可见属性值用于表征对页面对用户不可见,所述第一布尔值用于表征对页面进行显示,所述第二布尔值用于表征对页面进行隐藏。
7.在其中一个实施例中,所述根据所述可见状态属性值和所述隐藏状态属性值,确定所述目标事件对应的页面处理方式,包括:在所述可见状态属性值为第一可见状态属性值、且所述隐藏状态属性值为所述第一布尔值的情况下,确定所述目标事件对应的页面处理方式为显示处理方式;或者,在所述可见状态属性值为第二可见状态属性值、且所述隐藏状态属性值为所述第二布尔值的情况下,确定所述目标事件对应的页面处理方式为隐藏处理方式。
8.在其中一个实施例中,所述基于所述目标事件,确定可见状态属性值和隐藏状态属性值,包括:在所述目标事件包括所述当前应用程序的本地前景事件及本地返回事件的情况下,确定所述可见状态属性值为所述第一可见属性值、及确定所述隐藏状态属性值为所述第一布尔值;或者,在所述目标事件包括所述当前应用程序的本地背景事件及本地离开事件的情况下,确定所述可见状态属性值为所述第二可见属性值、及确定所述隐藏状态属性值为所述第二布尔值。
9.在其中一个实施例中,所述基于所述目标事件,确定可见状态属性值和隐藏状态属性值,包括:在所述目标事件包括所述目标页面的页面可见性改变事件的情况下,获取所述目标页面的文档可见性状态和文档隐藏状态;根据所述文档可见性状态确定可见状态属性值、及根据所述文档隐藏状态确定所述隐藏状态属性值。
10.在其中一个实施例中,所述基于所述目标事件,确定可见状态属性值和隐藏状态属性值,包括:在所述目标事件包括所述目标页面的页面显示事件的情况下,若当前需要从缓存中加载页面,则确定所述可见状态属性值为所述第一可见属性值、及确定所述隐藏状态属性值为所述第一布尔值。
11.在其中一个实施例中,所述对当前应用程序和在所述当前应用程序内打开的目标页面进行监听,包括:确定开启所述当前应用程序的终端设备的设备类型;根据所述终端设备的设备类型,确定针对当前应用程序和在所述当前应用程序内打开的目标页面待监听的目标事件;对所述目标事件进行监听。
12.在其中一个实施例中,所述通过所述页面处理方式所指示的页面处理器,进行页面处理,包括:在所述页面处理方式为所述显示处理方式的情况下,通过所述显示页面处理器执行页面显示处理;或者,在所述页面处理方式为所述隐藏处理方式的情况下,通过所述隐藏页面处理器执行页面隐藏处理。
13.在其中一个实施例中,所述通过所述页面处理方式所指示的页面处理器,进行页面处理,包括:
向所述当前应用程序或者所述目标页面发送所述页面处理方式对应的处理参数,以使所述当前应用程序或者所述目标页面通过所述处理参数对应的页面处理器进行页面处理。
14.根据本公开实施例的第二方面,提供一种页面处理装置,包括:监听单元,被配置为执行通过预先构造的钩子函数,对当前应用程序和在所述当前应用程序内打开的目标页面进行监听,其中,所述目标页面区别于所述当前应用程序的页面;确定单元,被配置为执行在监听到目标事件的情况下,基于所述目标事件确定页面处理方式,其中,所述目标事件包括所述当前应用程序的目标事件或者所述目标页面的目标事件,所述页面处理方式包括显示处理方式或者隐藏处理方式;处理单元,被配置为执行通过所述页面处理方式所指示的页面处理器,进行页面处理,所述页面处理器包括显示页面处理器或者隐藏页面处理器。
15.在其中一个实施例中,所述确定单元还被配置为执行:基于所述目标事件,确定可见状态属性值和隐藏状态属性值;根据所述可见状态属性值和所述隐藏状态属性值,确定所述目标事件对应的页面处理方式;其中,所述可见状态属性值包括第一可见属性值或者第二可见属性值,所述隐藏状态属性值包括第一布尔值或者第二布尔值,所述第一可见属性值用于表征页面对用户可见,所述第二可见属性值用于表征对页面对用户不可见,所述第一布尔值用于表征对页面进行显示,所述第二布尔值用于表征对页面进行隐藏。
16.在其中一个实施例中,所述确定单元还被配置为执行:在所述可见状态属性值为第一可见状态属性值、且所述隐藏状态属性值为所述第一布尔值的情况下,确定所述目标事件对应的页面处理方式为显示处理方式;或者,在所述可见状态属性值为第二可见状态属性值、且所述隐藏状态属性值为所述第二布尔值的情况下,确定所述目标事件对应的页面处理方式为隐藏处理方式。
17.在其中一个实施例中,所述确定单元还被配置为执行:在所述目标事件包括所述当前应用程序的本地前景事件及本地返回事件的情况下,确定所述可见状态属性值为所述第一可见属性值、及确定所述隐藏状态属性值为所述第一布尔值;或者,在所述目标事件包括所述当前应用程序的本地背景事件及本地离开事件的情况下,确定所述可见状态属性值为所述第二可见属性值、及确定所述隐藏状态属性值为所述第二布尔值。
18.在其中一个实施例中,所述确定单元还被配置为执行:在所述目标事件包括所述目标页面的页面可见性改变事件的情况下,获取所述h5页面的文档可见性状态和文档隐藏状态;根据所述文档可见性状态确定可见状态属性值、及根据所述文档隐藏状态确定所述隐藏状态属性值。
19.在其中一个实施例中,所述确定单元还被配置为执行:在所述目标事件包括所述目标页面的页面显示事件的情况下,若当前需要从缓存
中加载页面,则确定所述可见状态属性值为所述第一可见属性值、及确定所述隐藏状态属性值为所述第一布尔值。
20.在其中一个实施例中,所述监听单元还被配置为执行:确定开启所述当前应用程序的终端设备的设备类型;根据所述终端设备的设备类型,确定针对当前应用程序和在所述当前应用程序内打开的目标页面待监听的目标事件;对所述目标事件进行监听。
21.在其中一个实施例中,所述处理单元还被配置为执行:在所述页面处理方式为所述显示处理方式的情况下,通过所述显示页面处理器执行页面显示处理;或者,在所述页面处理方式为所述隐藏处理方式的情况下,通过所述隐藏页面处理器执行页面隐藏处理。
22.在其中一个实施例中,所述处理单元还被配置为执行:向所述当前应用程序或者所述目标页面发送所述页面处理方式对应的处理参数,以使所述当前应用程序或者所述目标页面通过所述处理参数对应的页面处理器进行页面处理。
23.根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现第一方面中提供的任一项页面处理方法。
24.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行第一方面中提供的任一项页面处理方法。
25.根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行第一方面中提供的任一项页面处理方法。
26.本公开的实施例提供的技术方案至少带来以下有益效果:本公开实施例提供的页面处理方法、装置、电子设备及存储介质,可以通过预先构造的钩子函数,对当前应用程序和在当前应用程序内打开的目标页面进行监听,其中,目标页面区别于当前应用程序的页面,并在监听到目标事件的情况下,基于目标事件确定页面处理方式,其中,目标事件包括当前应用程序的目标事件或目标页面的目标事件,页面处理方式包括显示处理方式或者隐藏处理方式。进一步的,可以通过页面处理方式所指示的页面处理器,进行相应的页面处理,其中,页面处理器包括显示页面处理器或者隐藏页面处理器。基于本技术实施例提供的页面处理方法、装置、电子设备及存储介质,可以通过预构造的钩子函数执行对应用程序和目标页面进行目标事件的监听,以在监听到目标事件的情况下,基于目标事件对应的页面处理方式所指示的页面处理方式,即可进行页面显示或者页面隐藏的处理,也即实现了针对各种场景目标页面显示或隐藏的逻辑聚合处理,无需针对各页面进行各种场景下页面显隐逻辑的代码开发,可以缓解重复性开发及代码数据冗余的问题,页面框架轻便简洁,实现了页面优化,并且能够降低开发者的工作量,能够有效提高开发效率。
27.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
28.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
29.图1是根据一示例性实施例示出的一种页面处理方法的流程图。
30.图2是根据一示例性实施例示出的一种页面处理方法的流程图。
31.图3是根据一示例性实施例示出的一种页面处理方法的流程图。
32.图4是根据一示例性实施例示出的一种页面处理方法的流程图。
33.图5是根据一示例性实施例示出的一种页面处理方法的示意图。
34.图6是根据一示例性实施例示出的一种页面处理方法的示意图。
35.图7是根据一示例性实施例示出的一种页面配置装置的框图。
36.图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
37.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
38.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
39.还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
40.图1是根据一示例性实施例示出的一种页面处理方法的流程图,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:在步骤102中,通过预先构造的钩子函数,对当前应用程序和在当前应用程序内打开的目标页面进行监听,其中,目标页面区别于当前应用程序的页面。
41.本技术实施例中,可以预先构造钩子函数(以下简称为hook函数),通过该hook函数集成各种场景下目标页面的页面显示逻辑或者页面隐藏逻辑。其中,目标页面区别于当前应用程序的页面,也即目标页面为通过当前应用程序打开并区别于当前应用程序本身页面的页面,例如:目标页面可以为通过当前应用程序打开的h5页面。
42.示例性的,通过该hook函数执行针对当前应用程序和在当前应用程序内打开的目标页面的监听,例如:对该当前应用程序触发的事件和在该当前应用程序内打开的目标页
面所触发的事件进行监听。其中,当前应用程序为终端设备当前开启并运行中的应用程序,在该当前应用程序内打开的目标页面,为在该当前应用程序内部触发加载展示的页面。
43.在步骤104中,在监听到目标事件的情况下,基于目标事件确定页面处理方式,其中,目标事件包括当前应用程序的目标事件或者目标页面的目标事件,页面处理方式包括显示处理方式或者隐藏处理方式。
44.本技术实施例中,hook函数在监听到当前应用程序触发目标事件或者目标页面触发目标事件的情况下,可以基于目标事件确定对应的页面处理方式。其中,目标事件可以为与当前待执行的页面显示或者页面隐藏操作相关联的事件,在不同的场景下,应用程序或者目标页面可以通过不同的事件触发页面的显示或者隐藏。
45.在监听到目标事件的情况下,可以基于目标事件确定当前针对页面执行显示处理还是隐藏处理,进而确定对应的页面处理方式,例如:在基于目标事件确定针对页面执行显示处理的情况下,确定页面处理方式为显示处理方式,或者,在基于目标事件确定针对页面执行隐藏处理的情况下,确定页面处理方式为隐藏处理方式。
46.在步骤106中,通过页面处理方式所指示的页面处理器,进行页面处理,页面处理器包括显示页面处理器或者隐藏页面处理器。
47.本技术实施例中,不同的页面处理方式可以指示采用不同的页面处理器,进行相应的页面处理。例如:页面处理方式为显示处理方式的情况下,页面处理方式所指示的页面处理器为显示页面处理器,显示页面处理器用于执行针对页面的显示处理,例如执行页面初始化处理逻辑;或者,页面处理方式为隐藏处理方式的情况下,页面处理方式所指示的页面处理器为隐藏页面处理器,隐藏页面处理器用于执行针对页面的隐藏处理,例如执行页面销毁逻辑。其中,页面处理器针对页面的页面处理过程参照相关技术即可,本技术实施例在此对此不做赘述。
48.本技术实施例提供的页面处理方法,可以通过预先构造的hook函数,对当前应用程序和在当前应用程序内打开的目标页面进行监听,其中,目标页面区别于当前应用程序的页面,并在监听到目标事件的情况下,基于目标事件确定页面处理方式,其中,目标事件包括当前应用程序的目标事件或目标页面的目标事件,页面处理方式包括显示处理方式或者隐藏处理方式。进一步的,可以通过页面处理方式所指示的页面处理器,进行相应的页面处理,其中,页面处理器包括显示页面处理器或者隐藏页面处理器。基于本技术实施例提供的页面处理方法,可以通过预构造的hook函数执行对应用程序和目标页面进行目标事件的监听,以在监听到目标事件的情况下,基于目标事件对应的页面处理方式所指示的页面处理方式,即可进行页面显示或者页面隐藏的处理,也即实现了针对各种场景下目标页面显示或隐藏的逻辑聚合处理,无需针对各页面进行各种场景下页面显隐逻辑的代码开发,可以缓解重复性开发及代码数据冗余的问题,页面框架轻便简洁,实现了页面优化,并且能够降低开发者的工作量,能够有效提高开发效率,避免开发者遗漏部分场景的情况,可以提高页面稳定性。
49.在一示例性实施例中,参照图2所示,步骤104中,基于目标事件确定页面处理方式,可以通过以下步骤实现:在步骤202中,基于目标事件,确定可见状态属性值和隐藏状态属性值;在步骤204中,根据可见状态属性值和隐藏状态属性值,确定目标事件对应的页面
处理方式;其中,可见状态属性值(例如:visiblestate)用于表征页面对用户是否可见,包括第一可见属性值或者第二可见属性值,第一可见属性值用于表征页面对用户可见,第二可见属性值用于表征对页面对用户不可见。示例性的,第一可见状态属性值可以表示为“visible”,第二可见状态属性值可以表示为“hidden”。
50.页面隐藏状态属性值(例如:hidden)用于表征是否对页面进行隐藏,具体可以包括第一布尔值和第二布尔值,第一布尔值用于表征对页面进行显示,第二布尔值用于表征对页面进行隐藏。示例性的,第一布尔值可以表示为“false”,第二布尔值可以表示为“true”。
51.在执行针对页面的页面处理过程中,往往通过可见状态属性值及隐藏状态属性值实现。例如:在可见状态属性值为“visible”、隐藏状态属性值为“false”的情况下,可以确定需要对页面进行页面显示处理,进而确定页面处理方式为显示处理方式;在可见状态属性值为“hidden”、隐藏状态属性值为“true”的情况下,可以确定需要对页面进行页面隐藏处理,故可以确定页面处理方式为隐藏处理方式。
52.本技术实施例提供的页面处理方法,在监听到目标事件的情况下,可以根据目标事件确定可见状态属性值和隐藏状态属性值,进而基于可见状态属性值及隐藏状态属性值确定页面处理方式,无需针对各页面进行各种场景下页面显隐逻辑的代码开发,可以缓解重复性开发及代码数据冗余的问题,页面框架轻便简洁,能够有效提高开发效率。
53.在一示例性实施例中,在步骤204中,根据可见状态属性值和隐藏状态属性值,确定目标事件对应的页面处理方式,可以通过以下步骤实现:在可见状态属性值为第一可见状态属性值、且隐藏状态属性值为第一布尔值的情况下,确定目标事件对应的页面处理方式为显示处理方式;或者,在可见状态属性值为第二可见状态属性值、且所述隐藏状态属性值为第二布尔值的情况下,确定所述目标事件对应的页面处理方式为隐藏处理方式。
54.本技术实施例中,由于第一可见状态属性值用于表征页面对用户可见,第一布尔值用于表征对页面进行显示,在可见状态属性值为第一可见状态属性值、且隐藏状态属性值为第一布尔值的情况下,则表明当前页面不仅对用户可见,并且当前需要进行页面显示,故可以确定当前目标事件对应的页面处理方式为显示处理方式。
55.或者,由于第二可见状态属性值用于表征页面对用户不可见,第一布尔值用于表征对页面进行隐藏,则在可见状态属性值为第二可见状态属性值、且所述隐藏状态属性值为第二布尔值的情况下,表明当前页面不仅对用户不可见,并且当前需要进行页面隐藏,故可以确定当前目标事件对应的页面处理方式为隐藏处理方式。
56.在确定目标事件对应的页面处理方式后,可以根据该页面处理方式所指示的页面处理器进行相应页面处理,例如:显示页面或者隐藏页面等处理。
57.本技术实施例提供的页面处理方法,可以根据可见状态属性值和隐藏状态属性值对应的具体取值,确定页面处理方式,实现页面处理,无需针对各页面进行各种场景下页面显隐逻辑的代码开发,可以缓解重复性开发及代码数据冗余的问题,页面框架轻便简洁,能够有效提高开发效率。
58.在一示例性实施例中,在步骤202中,基于目标事件,确定可见状态属性值和隐藏
状态属性值,具体可以通过以下步骤实现:在目标事件包括当前应用程序的本地前景事件及本地返回事件的情况下,确定可见状态属性值为第一可见属性值、及确定隐藏状态属性值为第一布尔值;或者,在目标事件包括当前应用程序的本地背景事件及本地离开事件的情况下,确定可见状态属性值为第二可见属性值、及确定隐藏状态属性值为第二布尔值。
59.本技术实施例中,在执行目标页面与当前应用程序界面之间的切换(端内h5切换),或者执行针对当前应用程序的前端与后台之间的切换时,当前应用程序触发的事件可以包括本地前景(例如:native_foreground)事件和本地返回(例如:native_reentry)事件、本地背景(例如:native_background)事件和本地离开(例如:native_leave)事件。
60.在监听到本地前景事件和本地返回事件的情况下,可以确定当前执行app(application,应用程序)后台切换到前端或者端内页面切换到目标页面的操作,也即当前目标页面不仅对于用户可见并且需要对目标页面进行展示,则执行显示页面处理器逻辑,也即确定可见状态属性值为第一可见属性值、及确定隐藏状态属性值为第一布尔值。示例性的,可以确定visiblestate值为“visible”,确定hidden值为“false”。
61.或者,在监听到本地背景事件和本地离开事件的情况下,可以确定当前执行app前端切换到后台或者目标页面切换到端内页面(端内h5切换)的操作,也即当前目标页面对于用户不可见并且需要对目标页面进行隐藏,则执行隐藏页面处理器逻辑,也即确定可见状态属性值为第二可见属性值、及确定隐藏状态属性值为第二布尔值。示例性的,可以确定visiblestate值为“hidden”,确定hidden值为“true”。
62.本技术实施例提供的页面处理方法,可以监听当前应用程序的本地前景事件及本地返回事件、以及本地背景事件及本地离开事件,以在监听到对应的事件时执行目标页面的显示处理或者隐藏处理,能够实现针对目标页面与当前应用程序界面之间的切换或者当前应用程序的前端与后台之间的切换这一场景下的页面显示处理或者页面隐藏处理。
63.在一示例性实施例中,参照图3,在步骤202中,基于目标事件,确定可见状态属性值和隐藏状态属性值,具体可以通过以下步骤实现:在步骤302中,在目标事件包括目标页面的页面可见性改变事件的情况下,获取目标页面的文档可见性状态和文档隐藏状态;在步骤304中,根据文档可见性状态确定可见状态属性值、及根据所述文档隐藏状态确定所述隐藏状态属性值。
64.本技术实施例中,在执行目标页面之间的跳转及返回时,目标页面触发的事件为页面可见性改变(例如:visibilitychange)事件。在监听到页面可见性改变事件的情况下,可以获取当前目标页面的文档可见性状态(例如:document.visibilitystate)和文档隐藏状态(例如:document.hidden)。
65.进一步的,可以将文档可见性状态赋值为可见状态属性值,及将文档隐藏状态赋值为隐藏状态属性值,其中,文档可见性状态可能的取值有visible, hidden等,文档隐藏状态可以包括“false”和“true”。也即,在监听到页面可见性改变事件的情况下,可以根据文档可见性状态和文档隐藏状态执行页面显示处理或者页面隐藏处理,例如:在文档隐藏状态为“true”的情况下,执行页面隐藏处理,或者在文档隐藏状态为“false”的情况下,执行页面显示处理。
66.本技术实施例提供的页面处理方法,可以监听目标页面的页面可见性改变事件,以在监听到页面可见性改变事件时,根据文档可见性状态及文档隐藏状态执行目标页面的显示处理或者隐藏处理,能够实现针对目标页面之间的切换及返回这一场景下的页面显示处理或者页面隐藏处理。
67.在一示例性实施例中,上述步骤202中,基于目标事件,确定可见状态属性值和隐藏状态属性值,包括:在目标事件包括目标页面的页面显示事件的情况下,若当前需要从缓存中加载页面,则确定可见状态属性值为第一可见属性值、及确定隐藏状态属性值为第一布尔值。
68.本技术实施例中,由于ios设备上目标页面返回时不会执行页面刷新处理,从而导致页面初始化逻辑不会重新执行,故本技术实施例中针对于ios设备上的目标页面返回,需要进行特殊处理。例如:由于ios页面在目标页面返回时将触发页面显示(pageshow)事件,进而在监听到该页面显示事件的情况下,可以确定当前是否需要从缓存中加载页面(例如:通过persisted反馈的值确定是否需要从缓存中加载页面),当确定从缓存中加载页面的情况下,可以确定可见状态属性值为第一可见属性值、及确定隐藏状态属性值为第一布尔值,进而基于该第一可见属性值及第一布尔值执行页面显示处理。
69.本技术实施例提供的页面处理方法,针对于ios设备,可以监听目标页面的页面显示事件,以在监听到页面显示事件时,若需要从缓存中加载页面,则将可见状态属性值确定为第一可见属性值,将隐藏状态属性值确定为第一布尔值,以根据第一可见属性值及第一布尔值执行页面显示处理,能够实现针对ios设备的目标页面返回这一场景下的页面显示处理。
70.在一示例性实施例中,参照图4所示,在步骤102中,对当前应用程序和在当前应用程序内打开的h5页面进行监听,具体可以通过以下步骤实现:在步骤402中,确定开启当前应用程序的终端设备的设备类型;在步骤404中,根据终端设备的设备类型,确定针对当前应用程序和在当前应用程序内打开的目标页面待监听的目标事件;在步骤406中,对目标事件进行监听。
71.本技术实施例中,针对不同类型的终端设备,在同一场景下所触发的事件可能存在不同,故在对当前应用程序和在当前应用程序内打开的目标页面进行监听之前,需要确定当前的终端设备的设备类型,进而根据终端设备的类型确定针对当前应用程序和在当前应用程序内打开的目标页面待监听的目标事件,以对确定的目标事件进行监听,并在监听到目标事件的情况下,根据目标事件进行页面显示处理及页面隐藏处理(具体过程参照前述实施例的相关描述即可,本技术实施例中对此不再赘述)。
72.示例性的,终端设备的设备类型可以包括安卓设备类型和ios设备类型,针对安卓设备类型而言,在执行端内h5页面切换时,触发的应用程序的是本地前景(例如:native_foreground)事件和本地返回(例如:native_reentry)事件、本地背景(例如:native_background)事件和本地离开(例如:native_leave)事件,也即需要监听的目标对象为应用程序的是本地前景(例如:native_foreground)事件和本地返回(例如:native_reentry)事件、本地背景(例如:native_background)事件和本地离开(例如:native_leave)事件;而对于ios设备类型而言,在端内h5页面返回的情况下,触发的是h5页面的页面显示事件,也即
需要监听的目标对象为页面显示事件。故针对ios设备而言,其对应的目标事件可以包括:pageshow事件、visibilitychange事件等,针对安卓设备而言,其对应的目标事件可以包括:native_foreground)事件和本地返回(例如:native_reentry)事件、本地背景(例如:native_background)事件和本地离开(例如:native_leave)事件、visibilitychange事件等。
73.安卓设备和ios设备在页面处理具有表现不一致性,采用本技术实施例提供的页面处理方法,可以通过终端设备的设备类型,确定针对不同设备类型需要监听的目标事件,以实现不同设备类型的终端设备上的页面显示和页面隐藏处理,可以处理安卓设备和ios设备的表现不一致性,进而使得开发者无需花费时间排查由设备类型不同所导致的页面问题,可以提高页面稳定性以及开发效率。
74.在一示例性实施例中,在步骤106中,通过页面处理方式所指示的页面处理器,进行页面处理,具体可以包括以下步骤实现:在页面处理方式为显示处理方式的情况下,通过显示页面处理器执行页面显示处理;或者,在页面处理方式为隐藏处理方式的情况下,通过隐藏页面处理器执行页面隐藏处理。
75.本技术实施例中,在页面处理方式为显示处理方式的情况下,可以通过显示页面处理器执行页面显示处理,或者,在页面处理方式为隐藏处理方式的情况下,可以通过隐藏页面处理器执行页面隐藏处理。
76.需要说明的是,本技术实施例中不对页面显示处理器及页面隐藏处理器的执行端做具体限定,例如:可以由hook函数执行页面显示处理及页面隐藏处理,或者也可以由hook函数将可见状态属性参数和隐藏状态属性值传递至当前应用程序或者目标页面,由当前应用程序或者目标页面基于可见状态属性参数和隐藏状态属性值,确定针对页面的页面处理方式,进行执行对应的页面显示处理及页面隐藏处理。
77.本技术实施例提供的页面处理方法,通过hook函数即可实现针对各个目标页面在各种场景下的显示及隐藏处理,无需针对各页面进行各种场景下页面显隐逻辑的代码开发,可以缓解重复性开发及代码数据冗余的问题,页面框架轻便简洁,能够有效提高开发效率。
78.在一示例性实施例中,上述步骤106中,通过页面处理方式所指示的页面处理器,进行页面处理,具体可以通过以下步骤实现:向当前应用程序或者目标页面发送页面处理方式对应的处理参数,以使当前应用程序或者目标页面通过处理参数对应的页面处理器进行页面处理。
79.本技术实施例中,在预先定义hook函数时,可以定义hook函数关键参数为一个对象,其中可以包含两个可选的处理参数,分别是'visiblehandler'和'hiddenhandler',分别可以代表页面可见处理器和页面不可见处理器。
80.在确定针对目标页面的页面处理方式后,可以基于页面处理方式确定对应的页面处理器,进而将页面处理器对应的处理参数传递至当前应用程序或者目标页面,以使得当前应用程序或者目标页面通过处理参数对应的页面处理器进行页面处理,执行相应的页面显示处理或者页面隐藏处理。
81.本技术实施例提供的页面处理方法,通过hook函数即可实现针对各个目标页面在各种场景下的显示及隐藏处理,无需针对各页面进行各种场景下页面显隐逻辑的代码开发,可以缓解重复性开发及代码数据冗余的问题,页面框架轻便简洁,能够有效提高开发效率。
82.为使本领域技术人员更好的理解本技术实施例,以下通过具体示例对本技术实施例加以说明。
83.参照图5所示,本技术实施例中可以基于vue2.x + composition api技术为前提,通过使用hook手段,针对各种页面切换或者页面返回等场景集中处理,开发者也可以根据hook函数返回的关键变量自行处理显隐逻辑。
84.参数图6所示,可以预先定义hook函数的关键参数为一个对象,包含两个可选的处理参数,分别是

visiblehandler'和

hiddenhandler',分别代表页面可见处理器和页面不可见处理器。在hook函数内部,定义关键变量

visiblestate(可见状态)',其值为枚举值hidden、visible、prerender、unloaded等,定义关键变量

hidden(隐藏)',其值类型为布尔类型。
85.针对多种场景,可以集中执行页面显示处理器和页面隐藏处理器,并对关键变量赋值,示例性的:针对应用程序前后台切换和native页面与目标页面之间切换的场景来说,在监听到应用程序中的

native_foreground'和

native_reentry'事件的情况下,执行页面可见处理器逻辑,设置

visiblestate'值为
ꢀ‘
visible',设置hidden值为

false';在监听到

native_background'和

native_leave'事件后,执行页面不可见处理器逻辑,设置

visiblestate'值为
ꢀ‘
hidden',设置hidden值为

true';并在页面卸载时,卸载native事件处理程序。
86.针对目标页面内跳转和返回来说,监听h5页面的

visibilitychange'事件,在事件回调中,将document.visibilitystate赋值给visiblestate变量,将document.hidden赋值给hidden,根据document.hidden的值为true执行隐藏页面处理器,为false执行显示页面处理器。
87.针对目标页面在ios设备端内h5页面返回来说,在检测设备到在是ios设备内运行时,若监听到目标页面的pageshow事件,并确定页面是从缓存中加载,则设置

visiblestate'值为
ꢀ‘
visible',设置hidden值为

false',并且执行可见处理器。
88.本技术实施例提供的页面处理方法,通过预先构建一个hook函数可以解决端内h5页面在终端设备的前后台切换、端内页面和h5页面切换、h5页面跳转和h5页面返回、h5页面在ios设备和安卓设备端内h5返回表现不一致性等多场景下,需要反复单独针对不同场景处理页面内一些初始化或者页面内组件、对象等元素销毁工作的痛点,提供一个考虑全面、使用简单的方案,方便开发者使用,开发者不需要考虑多种场景,直接调用传入页面初始化和销毁的处理器即可,节省开发成本和人力,提升开发效率,同时可以避免开发者考虑不全产生bug的问题,提高页面稳定性,并且在一定程度实现了自动化处理显隐逻辑,为端内页面、组件等逻辑开发提供了便捷和优化空间。
89.应该理解的是,虽然图1-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图6中的至
少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
90.可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
91.图7是根据一示例性实施例示出的一种页面处理装置框图。参照图7,该页面处理装置700包括监听单元702、确定单元704和处理单元706,其中,监听单元702,被配置为执行通过预先构造的钩子函数,对当前应用程序和在所述当前应用程序内打开的目标页面进行监听,其中,所述目标页面区别于所述当前应用程序的页面;确定单元704,被配置为执行在监听到目标事件的情况下,基于所述目标事件确定页面处理方式,其中,所述目标事件包括所述当前应用程序的目标事件或者所述目标页面的目标事件,所述页面处理方式包括显示处理方式或者隐藏处理方式;处理单元706,被配置为执行通过所述页面处理方式所指示的页面处理器,进行页面处理,所述页面处理器包括显示页面处理器或者隐藏页面处理器。
92.基于本技术实施例提供的页面处理装置,可以通过预构造的hook函数执行对应用程序和目标页面进行目标事件的监听,以在监听到目标事件的情况下,基于目标事件对应的页面处理方式所指示的页面处理方式,即可进行页面显示或者页面隐藏的处理,也即实现了针对各种场景目标页面显示或隐藏的逻辑聚合处理,无需针对各页面进行各种场景下页面显隐逻辑的代码开发,可以缓解重复性开发及代码数据冗余的问题,页面框架轻便简洁,实现了页面优化,并且能够降低开发者的工作量,能够有效提高开发效率。
93.在其中一个实施例中,所述确定单元704还被配置为执行:基于所述目标事件,确定可见状态属性值和隐藏状态属性值;根据所述可见状态属性值和所述隐藏状态属性值,确定所述目标事件对应的页面处理方式;其中,所述可见状态属性值包括第一可见属性值或者第二可见属性值,所述隐藏状态属性值包括第一布尔值或者第二布尔值,所述第一可见属性值用于表征页面对用户可见,所述第二可见属性值用于表征对页面对用户不可见,所述第一布尔值用于表征对页面进行显示,所述第二布尔值用于表征对页面进行隐藏。
94.在其中一个实施例中,所述确定单元704还被配置为执行:在所述可见状态属性值为第一可见状态属性值、且所述隐藏状态属性值为所述第一布尔值的情况下,确定所述目标事件对应的页面处理方式为显示处理方式;或者,在所述可见状态属性值为第二可见状态属性值、且所述隐藏状态属性值为所述第二布尔值的情况下,确定所述目标事件对应的页面处理方式为隐藏处理方式。
95.在其中一个实施例中,所述确定单元704还被配置为执行:在所述目标事件包括所述当前应用程序的本地前景事件及本地返回事件的情况下,确定所述可见状态属性值为所述第一可见属性值、及确定所述隐藏状态属性值为所述
第一布尔值;或者,在所述目标事件包括所述当前应用程序的本地背景事件及本地离开事件的情况下,确定所述可见状态属性值为所述第二可见属性值、及确定所述隐藏状态属性值为所述第二布尔值。
96.在其中一个实施例中,所述确定单元704还被配置为执行:在所述目标事件包括所述目标页面的页面可见性改变事件的情况下,获取所述目标页面的文档可见性状态和文档隐藏状态;根据所述文档可见性状态确定可见状态属性值、及根据所述文档隐藏状态确定所述隐藏状态属性值。
97.在其中一个实施例中,所述确定单元704还被配置为执行:在所述目标事件包括所述目标页面的页面显示事件的情况下,若当前需要从缓存中加载页面,则确定所述可见状态属性值为所述第一可见属性值、及确定所述隐藏状态属性值为所述第一布尔值。
98.在其中一个实施例中,所述监听单元702还被配置为执行:确定开启所述当前应用程序的终端设备的设备类型;根据所述终端设备的设备类型,确定针对当前应用程序和在所述当前应用程序内打开的目标页面待监听的目标事件;对所述目标事件进行监听。
99.在其中一个实施例中,所述处理单元706还被配置为执行:在所述页面处理方式为所述显示处理方式的情况下,通过所述显示页面处理器执行页面显示处理;或者,在所述页面处理方式为所述隐藏处理方式的情况下,通过所述隐藏页面处理器执行页面隐藏处理。
100.在其中一个实施例中,所述处理单元706还被配置为执行:向所述当前应用程序或者所述目标页面发送所述页面处理方式对应的处理参数,以使所述当前应用程序或者所述目标页面通过所述处理参数对应的页面处理器进行页面处理。
101.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
102.图8是根据一示例性实施例示出的一种用于页面处理方法的电子设备900的框图。例如,电子设备800可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
103.参照图8,电子设备800可以包括以下一个或多个组件:处理组件802、存储器804、电源组件806、多媒体组件808、音频组件810、输入/输出(i/o)的接口812、传感器组件814以及通信组件816。
104.处理组件802通常控制电子设备800的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以
方便多媒体组件808和处理组件802之间的交互。
105.存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
106.电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
107.多媒体组件808包括在所述电子设备800和用户之间的提供输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是固定的光学透镜系统或具有焦距和光学变焦能力。
108.音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括麦克风(mic),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括扬声器,用于输出音频信号。
109.i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
110.传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800组件的位置改变,用户与电子设备800接触的存在或不存在,设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
111.通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件1116经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
112.在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(asic)、数
字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
113.在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述方法。例如,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
114.在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备800的处理器820执行以完成上述方法。
115.需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
116.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
117.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1