一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

页面白屏检测方法、装置、设备及存储介质与流程

2022-04-25 01:29:46 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,具体地说,涉及页面白屏检测方法、装置、设备及存储介质。


背景技术:

2.当下移动互联网应用越来越普遍,应用程序app(application)用户体验也越来越被重视。其中,页面白屏会带来非常不好的用户体验,它指的是页面在被打开后,因为遇到异常无法正常显示出页面内容,从而长时间停留在空白状态。
3.需要注意到,应用程序主动检测出页面处于白屏状态,以便及时做出相应的保护处理,对用户体验来说至关重要。
4.需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

5.针对现有技术中的问题,本发明的目的在于提供页面白屏检测方法、装置、设备及存储介质,克服了现有技术的困难,能够大大降低页面白屏检测产生的内存和耗时开销。
6.本发明的实施例提供一种页面白屏检测方法,该页面白屏检测方法包括如下步骤:
7.在渲染页面的情况下,扫描页面文本信息;
8.在未扫描到文本信息的情况下,输出页面白屏信息。
9.在可选实施例中,在渲染页面的情况下,扫描页面文本信息,包括:
10.在获取到页面为非中间页面或非整图页面的情况下,扫描页面文本信息。
11.在可选实施例中,在渲染页面的情况下,扫描页面文本信息,包括:
12.在渲染页面的情况下,每隔目标检测时长,扫描页面文本信息。
13.在可选实施例中,在未扫描到文本信息的情况下,输出页面白屏信息,包括:
14.在经过目标超时时长未扫描到文本信息的情况下,输出页面白屏信息。
15.在可选实施例中,在渲染页面的情况下,扫描页面文本信息,包括:
16.在渲染页面的情况下,获取页面的页面类型,并根据页面类型选取文本扫描策略;
17.利用文本扫描策略扫描页面文本信息。
18.在可选实施例中,在页面类型为原生页面的情况下,文本扫描策略为页面布局内文本控件扫描,则利用文本扫描策略扫描页面文本信息,包括:
19.遍历页面布局,并扫描页面布局内文本控件;
20.在未扫描到文本信息的情况下,输出页面白屏信息,包括:
21.在遍历页面布局均未扫描到文本控件的情况下,输出页面白屏信息。
22.在可选实施例中,遍历页面布局,并扫描页面布局内文本控件,包括:
23.依序遍历页面布局,在每一轮查找到文件控件的情况下,并在查找到的文本控件
不可见或未在检测区域内或文本值为空的情况下,返回下一轮遍历页面布局。
24.在可选实施例中,在页面类型为h5页面,文本扫描策略为网页文本元素扫描。
25.在可选实施例中,利用文本扫描策略扫描页面文本信息,包括:
26.基于webview引擎调用页面js代码,并从页面js代码提取页面文本元素;
27.在未扫描到文本信息的情况下,输出页面白屏信息,包括:
28.在页面文本元素为空的情况下,输出页面白屏信息。
29.本发明的实施例还提供一种页面白屏检测装置,该页面白屏检测装置包括:
30.扫描模块,在渲染页面的情况下,扫描页面文本信息;
31.输出模块,在未扫描到文本信息的情况下,输出页面白屏信息。
32.本发明的实施例还提供一种电子设备,包括:
33.处理器;
34.存储器,其中存储有处理器的可执行指令;
35.其中,处理器配置为经由执行可执行指令来执行上述页面白屏检测方法的步骤。
36.本发明的实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述页面白屏检测方法的步骤。
37.本发明的目的在于提供页面白屏检测方法、装置、设备及存储介质,能够根据文本扫描信息检测当前页面是否白屏,并在未扫描到文本信息的情况下,认定该页面处于白屏状态。本发明实施例的技术方案不受系统类型限定,具备通用性,同时不需要对页面图像进行像素比对,从而能大大降低页面白屏检测产生的内存和耗时开销。
附图说明
38.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
39.图1是本发明的页面白屏检测方法的实施例之一的流程图;
40.图2是本发明的页面白屏检测方法的实施例之二的流程图;
41.图3是本发明的页面白屏检测方法的实施例之三的流程图;
42.图4是本发明的页面白屏检测方法的实施例之四的流程图;
43.图5是本发明的页面白屏检测方法的实施例之五的流程图;
44.图6是本发明的页面白屏检测方法的实施例之六的流程图;
45.图7是本发明的页面白屏检测装置的一个实施例的模块示意图;
46.图8是本发明的页面白屏检测装置运行的示意图。
具体实施方式
47.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使本发明全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
48.附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实
体,或在一个或多个硬件转发模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
49.此外,附图中所示的流程仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤可以分解,有的步骤可以合并或部分合并,且实际执行的顺序有可能根据实际情况改变。具体描述时使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。需要说明的是,在不冲突的情况下,本发明的实施例及不同实施例中的特征可以相互组合。
50.本案发明人对现有的页面白屏检测技术进行研究发现,传统的页面白屏检测技术方案一般可以归纳为以下两种:
51.一、监听异常事件,包括接口报错、网页加载失败、渲染异常等;
52.二、将页面截图,得到一张检测图像,比对图像中的像素点。
53.但是这两种方案都有较明显的缺陷。
54.具体来说,方案一需要依赖具体的业务逻辑,不同页面的业务逻辑各不相同,需要监听的事件也各不相同,方案不具备通用性,对一些大型app项目来说,开发接入成本过大,并且由于native(原生)、rn(react native)、h5(html 5)多种页面类型共存成为了app常态,对不同类型的页面单独去做监听,无法统一收口,后期很难维护。
55.方案二虽然不依赖具体业务能够统一收口成为通用性方案,但是在截屏生成图像对比像素的检测过程中,会产生过大的性能开销,这表现为两方面:
56.一是创建检测图像会增加app运行设备的内存负担,尤其是对一些内存本就紧张的设备来说可能会导致应用崩溃;
57.二是需要对比的像素点过多,检测耗时过大,即便一些加快像素对比的改进方案被提出,但改善效果有限,毕竟仅仅截屏生成图像这一过程就需要消耗大约百毫秒级时间,这已经超出了快速响应场景的承受范围。
58.本案发明人希望能提供一种内存消耗较低的页面白屏检测方案。本案发明人注意到,各类app中的各类页面,其展示内容几乎都会包含文本信息。于是,为了让白屏检测技术,既能易开发维护具备通用性,又能大大降低检测产生的内存和耗时开销,本发明实施例提出了一种基于文本扫描的页面白屏检测方法、装置、设备及存储介质。
59.本发明实施例的发明思想是,扫描页面文本信息,根据文本信息扫描结果判定当前页面是否为白屏。本发明实施例的技术方案不受系统类型限定,具备通用性,同时不需要对页面图像进行像素比对,从而能大大降低页面白屏检测产生的内存和耗时开销。
60.图1为本发明实施例提供的页面白屏检测方法的流程图,本方法的执行主体是应用程序或运行该应用程序的用户设备,在此不作限定。其中,应用程序可以是移动应用程序或浏览器,对其类型不作具体限定。
61.如图1所示,本发明实施例的页面白屏检测方法包括如下步骤:
62.步骤110:在渲染页面的情况下,扫描页面文本信息;
63.步骤120:在未扫描到文本信息的情况下,输出页面白屏信息。
64.本发明实施例能够根据文本扫描信息检测当前页面是否白屏,并在未扫描到文本信息的情况下,认定该页面处于白屏状态。本发明实施例的技术方案不受系统类型限定,具备通用性,同时不需要对页面图像进行像素比对,从而能大大降低页面白屏检测产生的内
存和耗时开销。
65.在本发明可选实施例中,应用程序或用户设备提供用户界面,用来接收用户的页面渲染指示。具体地,页面白屏检测方法可以包括如下步骤:
66.步骤210:接收用户的输入;
67.步骤220:响应于用户的输入,启动渲染页面;
68.步骤230:在渲染页面的情况下,扫描页面文本信息;
69.步骤240:在未扫描到文本信息的情况下,输出页面白屏信息。
70.在一种应用场景中,应用程序或用户设备当前用户界面显示页面打开控件,用户的输入作用在该页面打开控件上,使得页面打开控件被触发,进而执行页面跳转并开始渲染要打开的页面。
71.该页面打开控件可以是图标或页面链接,在此不做限定。
72.在本实施例中,页面渲染的整个过程包括:
73.响应于用户的输入获得请求的url并进行域名解析,向服务器发起请求,接收文件(html、js、css、图象等);
74.解析,对加载到的资源(html、js、css等)进行语法解析,建议相应的内部数据结构(比如html的dom树,js的(对象)属性表,css的样式规则等等);
75.渲染:构建渲染树,对各个元素进行位置计算、样式计算等等,然后根据渲染树对页面进行渲染(可以理解为“画”元素)
76.这几个过程不是完全孤立的,会有交叉,比如html加载后就会进行解析,然后拉取html中指定的css、js等。在此不做具体描述。
77.在本发明可选实施例中,在渲染页面的情况下,扫描页面文本信息,具体可以包括:
78.在获取到页面为非中间页面或非整图页面的情况下,渲染页面并扫描页面文本信息。
79.本实施例允许事先设置白屏检测参数,因此可以根据用户的输入获取请求的信息,并根据请求的信息获取待渲染页面的信息,并根据事先设置判定是否对该待渲染页面进行扫描。
80.例如,某个页面是跳转中间页或者整图页,不存在文本内容,那这个页面可以重写needcheck=false,对该页面跳过白屏检测。
81.在本发明可选实施例中,可以事先设置检测时长。这样,在渲染页面的情况下,扫描页面文本信息,可以包括:
82.在渲染页面的情况下,每隔目标检测时长,扫描页面文本信息。
83.这样可以降低频繁扫描文本信息导致的系统冗余。
84.在本发明可选实施例中,可以事先设置超时时长。在这种情况下,在未扫描到文本信息的情况下,输出页面白屏信息,包括:
85.在经过目标超时时长未扫描到文本信息的情况下,输出页面白屏信息。
86.本实施例能够实现白屏检测效率和系统运行效率之间的平衡。
87.在本发明可选实施例中,在渲染页面的情况下,扫描页面文本信息,可以包括:
88.获取页面的页面类型,并根据页面类型选取文本扫描策略;
89.利用文本扫描策略扫描页面文本信息。
90.在本发明可选实施例中,在页面类型为原生页面的情况下,文本扫描策略为页面布局内文本控件扫描,则提供图3所示页面白屏检测方法,具体包括如下步骤:
91.步骤310:在渲染页面的情况下,遍历页面布局,并扫描页面布局内文本控件;
92.步骤320:在遍历页面布局均未扫描到文本控件的情况下,输出页面白屏信息。
93.在本发明可选实施例中,参考图4所示,遍历页面布局,并扫描页面布局内文本控件,具体可以包括:
94.依序遍历页面布局,在每一轮查找到文件控件的情况下,并在查找到的文本控件不可见或未在检测区域内或文本值为空的情况下,返回下一轮遍历页面布局。
95.另外,在查找到文本控件可见、且可见文本控件在检测区域内、且文本值不为空的情况下,输出页面无白屏的检测结果。
96.在本发明可选实施例中,在页面类型为h5页面,文本扫描策略为网页文本元素扫描。
97.参考图5所示一种可选实施例的页面白屏检测方法,该方法具体包括如下步骤:
98.步骤510:在渲染页面的情况下,基于webview引擎调用页面js代码并从页面js代码提取页面文本元素;
99.步骤520:在页面文本元素为空的情况下,输出页面白屏信息。
100.如图6所示,在执行h5页面检测时,在页面文本元素innertext不为空(否)的情况下,输出页面无白屏的检测结果;
101.在页面文本元素innertext为空(是)的情况下,扫描间隔等待;
102.在检测超时(是)的情况下,输出页面白屏信息;
103.在检测未超时(否)的情况下,返回基于webview引擎调用页面js代码。
104.本发明可选实施例提供如下实施例的页面白屏检测方案。
105.(1)在app初始化时,配置一套默认的白屏检测参数如下:
106.a)是否需要白屏检测needcheck=true,表示对全部页面都进行白屏检测;
107.b)页面检测区域checkrect,通过设置到页面四边的间距定义中间矩形区域,作为页面检测区域,间距单位为像素;
108.c))检测超时时间checktimeout;
109.d))扫描间隔scaninterval。
110.当页面创建时,可以根据实际需要重写部分或者全部配置参数。比如某个页面是跳转中间页或者整图页,不存在文本内容,那这个页面可以重写needcheck=false,对该页面跳过白屏检测。
111.(2)页面渲染完成后,若步骤(1)中配置的needcheck=true,则开始执行检测,如果needcheck=false则不执行检测;
112.(3)获取待检测页面的页面类型,根据页面类型选择对应的文本扫描方式,具体为,对rn(react native)/native页面选择页面布局内文本控件扫描,通过遍历页面布局筛选出textview控件实现;
113.对h5页面选择网页文本元素扫描,基于webview引擎调用页面js代码来获取页面文本元素innertext值;
114.(4)根据步骤(3)中执行的扫描方式,如果是布局文本控件扫描,则根据筛选出textview控件,再则结合步骤(1)中的checkrect参数,进一步筛选出可见并落在checkrect区域内的textview控件;
115.如果是网页文本元素扫描,则记录所获得的innertext元素;
116.(5)根据步骤(4)得到的结果,用result来标记文本结果,如果是rn/native页面,result表示textview控件的text属性;
117.如果是h5页面,result表示网页中innertext元素的值;
118.(6)根据步骤(5)中的查找结果,如果result不为空,则判定页面没有白屏,不再执行后续步骤,检测结束;
119.(7)根据步骤(5)中的查找结果,如果result为空,记录检测已经花费的时间,记作count;
120.(8)根据步骤(7)中记录的检测耗时count,以及步骤(1)配置的超时时间checktimeout,判段检测是否超时,如果count小于checktimeout则没有超时,否则超时;
121.(9)根据步骤(8)中的结果,如果已经超时,则判定页面白屏,不再执行后续步骤,检测结束;
122.(10)根据步骤(8)中的结果,如果没有超时,按照步骤(1)提供的扫描间隔checkinterval,执行时长为checkinterval的等待;
123.(11)重复执行步骤(4)再次进行扫描,直到判定出页面是否白屏;
124.综上,本发明实施例提供一种基于文本扫描的页面白屏检测方案,通过对不同页面类型选择对应的文本扫描方式,能有效对页面是否白屏进行判定,通用于不同设备、系统、应用程序app和页面,是一种低成本高性能的白屏检测解决方案。
125.图7是本发明的页面白屏检测装置的一种实施例的模块示意图。本发明的页面白屏检测装置700,如图7所示,包括但不限于:
126.扫描模块710,在渲染页面的情况下,扫描页面文本信息;
127.输出模块720,在未扫描到文本信息的情况下,输出页面白屏信息。
128.上述模块的实现原理参见页面白屏检测方法中的相关介绍,此处不再赘述。
129.本发明实施例的页面白屏检测装置能够根据文本扫描信息检测当前页面是否白屏,并在未扫描到文本信息的情况下,认定该页面处于白屏状态。本发明实施例的技术方案不受系统类型限定,具备通用性,同时不需要对页面图像进行像素比对,从而能大大降低页面白屏检测产生的内存和耗时开销。
130.在本发明可选实施例中,扫描模块710具体用于:
131.在获取到页面为非中间页面或非整图页面的情况下,扫描页面文本信息。
132.在本发明可选实施例中,扫描模块710具体用于:
133.在渲染页面的情况下,每隔目标检测时长,扫描页面文本信息。
134.在本发明可选实施例中,输出模块720具体用于:
135.在经过目标超时时长未扫描到文本信息的情况下,输出页面白屏信息。
136.在本发明可选实施例中,扫描模块710具体用于:
137.在渲染页面的情况下,获取页面的页面类型,并根据页面类型选取文本扫描策略;
138.利用文本扫描策略扫描页面文本信息。
139.在本发明可选实施例中,在页面类型为原生页面的情况下,文本扫描策略为页面布局内文本控件扫描,则扫描模块710具体还用于:
140.遍历页面布局,并扫描页面布局内文本控件;
141.输出模块720具体用于:
142.在遍历页面布局均未扫描到文本控件的情况下,输出页面白屏信息。
143.在本发明可选实施例中,扫描模块710具体还用于:
144.依序遍历页面布局,在每一轮查找到文件控件的情况下,并在查找到的文本控件不可见或未在检测区域内或文本值为空的情况下,返回下一轮遍历页面布局。
145.在本发明可选实施例中,在页面类型为h5页面,文本扫描策略为网页文本元素扫描。
146.在本发明可选实施例中,扫描模块710具体还用于:
147.基于webview引擎调用页面js代码,并从页面js代码提取页面文本元素;
148.在未扫描到文本信息的情况下,输出页面白屏信息,包括:
149.在页面文本元素为空的情况下,输出页面白屏信息。
150.本发明实施例还提供一种电子设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的页面白屏检测方法的步骤。
151.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
152.图8是本发明的页面白屏检测设备的结构示意图。下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
153.如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同平台组件(包括存储单元820和处理单元810)的总线830、显示单元840等。
154.其中,存储单元存储有程序代码,程序代码可以被处理单元810执行,使得处理单元810执行本说明书页面白屏检测方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元810可以执行如图1-图6中所示的步骤。
155.存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)821和/或高速缓存存储单元822,还可以进一步包括只读存储单元(rom)823。
156.存储单元820还可以包括具有一组(至少一个)程序模块825的程序/实用工具824,这样的程序模块825包括但不限于:处理系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
157.总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
158.电子设备800也可以与一个或多个外部设备870(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得
该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。
159.并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器860可以通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储平台等。
160.本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的页面白屏检测方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述页面白屏检测方法部分中描述的根据本发明各种示例性实施方式的步骤。
161.根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
162.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
163.计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
164.可以以一种或多种程序设计语音的任意组合来编写用于执行本发明处理的程序代码,程序设计语音包括面向对象的程序设计语音—诸如java、c 等,还包括常规的过程式程序设计语音—诸如“c”语音或类似的程序设计语音。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
165.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的
保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献