CN114327682B - WebView白屏检测方法、系统、电子设备和存储介质 - Google Patents
WebView白屏检测方法、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114327682B CN114327682B CN202111672445.0A CN202111672445A CN114327682B CN 114327682 B CN114327682 B CN 114327682B CN 202111672445 A CN202111672445 A CN 202111672445A CN 114327682 B CN114327682 B CN 114327682B
- Authority
- CN
- China
- Prior art keywords
- detection
- webview
- white screen
- loading
- dom
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机应用技术领域,提供一种WebView白屏检测方法、系统、电子设备和存储介质。所述WebView白屏检测方法包括:获取检测参数,所述检测参数至少包括必要资源标识,并执行:第一级检测:监听WebView控件的文档对象模型DOM加载状态,若DOM加载失败则判定WebView白屏并结束检测,否则执行:第二级检测:监听所述WebView控件的资源加载状态,若携带必要资源标识的资源加载失败则判定WebView白屏并结束检测,否则执行:第三级检测:对所述WebView控件进行截屏以生成图像,比对所述图像的像素色值,若所述像素色值不单一则判定WebView不白屏并结束检测。本发明能够提升WebView白屏检测的准确性和及时性,改善用户的使用体验,并且能够降低检测产生的性能开销,节省计算资源。
Description
技术领域
本发明涉及计算机应用技术领域,具体地说,涉及一种WebView白屏检测方法、系统、电子设备和存储介质。
背景技术
随着移动APP(Application,应用程序)和前端技术的发展,在原生APP中混合H5(HTML 5)页面,实现跨平台(Android和iOS)开发,在实际应用中越来越普遍。在一些APP中,H5甚完全替代了原生页面,成为最主要的业务呈现模式。WebView做为移动端的浏览器控件,是H5页面得以呈现的载体。
然而,H5页面在呈现之前,需要先经过WebView的网络加载,一旦加载过程中出现网络异常导致加载失败,WebView就无法正常呈现出内容,成为白屏页面,严重影响用户体验。此时,若WebView能够主动检测出白屏,以便做出针对性处理,则对改善用户体验来说是非常有意义的。但现有技术中,尚没有能够准确、及时检测WebView白屏,并降低检测开销的相关技术。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种WebView白屏检测方法、系统、电子设备和存储介质,能够提升WebView白屏检测的准确性和及时性,改善用户的使用体验,并且能够降低检测产生的性能开销,节省计算资源。
根据本发明的一个方面,提供一种WebView白屏检测方法,包括:获取检测参数,所述检测参数至少包括必要资源标识,并执行:第一级检测:监听WebView控件的文档对象模型DOM加载状态,若DOM加载失败则判定WebView白屏并结束检测,否则执行:第二级检测:监听所述WebView控件的资源加载状态,若携带必要资源标识的资源加载失败则判定WebView白屏并结束检测,否则执行:第三级检测:对所述WebView控件进行截屏以生成图像,比对所述图像的像素色值,若所述像素色值不单一则判定WebView不白屏并结束检测。
在一些实施例中,所述检测参数还包括超时时长;所述比对所述图像的像素色值,若所述像素色值单一则执行:根据所述超时时长判断当前检测是否超时,若超时则判定WebView白屏并结束检测。
在一些实施例中,所述检测参数还包括等待时长;所述根据所述超时时长判断当前检测是否超时,若未超时则执行:于所述等待时长后,返回执行所述第三级检测。
在一些实施例中,所述检测参数还包括采样像素数;所述比对所述图像的像素色值,包括:根据所述采样像素数对所述图像中的像素点进行采样;对比采样获得的像素点的色值。
在一些实施例中,对所述图像中的像素点进行采样时,采用均匀采样方式或不均匀采样方式;所述对比采样获得的像素点的色值,包括:按色值对采样获得的像素点进行分组,使相同色值的像素点归类至相同组。
在一些实施例中,所述检测参数于所述WebView控件初始化时配置,所述必要资源标识由H5和Native共同约定;于所述WebView控件初始化时,还配置所述WebView控件的加载过程事件监听,包括:监听加载开始事件,记录加载页面的统一资源定位符URL作为加载URL,以当所述加载开始事件被触发时获得所述加载URL;监听加载出错事件,记录出错页面的URL作为出错URL,以当所述加载出错事件被触发时获得所述出错URL;监听DOM加载成功事件,作为所述第三级检测的触发条件。
在一些实施例中,所述第一级检测中,通过比对所述加载URL和所述出错URL,以获得DOM加载状态;所述第二级检测中,通过检测所述出错URL中是否含有所述必要资源标识,以获得携带所述必要资源标识的资源的加载状态;以及,于DOM加载成功回调所述DOM加载成功事件后,触发所述第三级检测。
根据本发明的一个方面,提供一种WebView白屏检测系统,包括:参数获取模块,用于获取检测参数,所述检测参数至少包括必要资源标识,并触发:第一级检测模块,用于监听WebView控件的文档对象模型DOM加载状态,若DOM加载失败则判定WebView白屏并结束检测,否则触发:第二级检测模块,用于监听所述WebView控件的资源加载状态,若携带必要资源标识的资源加载失败则判定WebView白屏并结束检测,否则触发:第三级检测模块,用于对所述WebView控件进行截屏以生成图像,比对所述图像的像素色值,若所述像素色值不单一则判定WebView不白屏并结束检测。
根据本发明的一个方面,提供一种电子设备,包括:一处理器;一存储器,所述存储器中存储有可执行指令;其中,所述可执行指令被所述处理器执行时,实现如上述任意实施例所述的WebView白屏检测方法。
根据本发明的一个方面,提供一种计算机可读的存储介质,用于存储程序,所述程序被处理器执行时实现如上述任意实施例所述的WebView白屏检测方法。
本发明与现有技术相比的有益效果至少包括:
本发明通过三个不同级别的检测手段的协同作用,能够覆盖WebView全部白屏场景,实现在白屏发生的第一时间做出检测响应,确保检测结果的准确性和及时性,改善用户的使用体验;此外,三级检测的分级按照性能开销从小到大递进的方式,减少白屏检测产生的性能开销,由于必要资源加载失败是导致WebView白屏的主要原因,意味着大多数场景的白屏检测开销都被第二级检测承担,而不是开销更大的第三级检测,从而使得总体的检测开销得以降低,节省计算资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明一实施例中WebView白屏检测方法的主要步骤示意图;
图2示出本发明一实施例中WebView白屏检测方法的完整步骤示意图;
图3示出本发明一实施例中WebView白屏检测系统的模块示意图;
图4示出本发明一实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使本发明全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
此外,附图中所示的流程仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤可以分解,有的步骤可以合并或部分合并,且实际执行的顺序有可能根据实际情况改变。具体描述时使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。需要说明的是,在不冲突的情况下,本发明的实施例及不同实施例中的特征可以相互组合。
图1示出一实施例中WebView白屏检测方法的主要步骤,参照图1所示,本实施例的WebView白屏检测方法同时适用于Android和iOS系统的H5页面,主要包括:
步骤S110,获取检测参数,检测参数至少包括必要资源标识,并执行步骤S120。
检测参数于WebView控件初始化时配置,可根据检测需要配置各项检测参数。必要资源标识由H5和Native共同约定。具体来说,H5在发布资源时,根据该资源缺失是否会导致页面无法正常初始化从而白屏,决定是否携带必要资源标识。如果会导致白屏,通常是一些重要的JS脚本,则在URL(Uniform Resource Locator,统一资源定位符)上以参数的形式携带上必要资源标识。如果不会导致白屏,通常是一些不重要的CSS、JPG等,则不携带必要资源标识。
步骤S120,第一级检测:监听WebView控件的DOM(Document Object Model,文档对象模型)加载状态,若DOM加载失败则判定WebView白屏并结束检测,否则执行步骤S130。
DOM可根据页面的HTML文本获得。DOM加载失败,页面一定会出现白屏;但DOM加载成功,页面也可能会出现白屏,这是因为一个页面除了DOM本身,通常还会包含很多资源(JS、CSS、JPG等),虽然大部分资源对页面呈现来说不是必须的,但是有一些资源是必须的,如果这些必须的资源加载失败,页面将无法正常初始化,从而也会出现白屏。
如果只采用监听DOM加载状态的手段来检测WebView白屏,DOM加载失败时认为页面白屏,DOM加载成功时认为页面不白屏,会导致检测结果不够准确,遗漏由于必要资源出错导致的白屏。而在实际应用中,必要资源出错是WebView白屏发生的最主要原因。
因此,本步骤中,在DOM加载失败时直接判定WebView白屏并结束检测,在DOM加载成功时,继续进行下一步检测。
步骤S130,第二级检测:监听WebView控件的资源加载状态,若携带必要资源标识的资源加载失败则判定WebView白屏并结束检测,否则执行步骤S140。
在实际应用中,即便DOM和必要资源都加载成功,页面仍然可能由于业务数据加载出错或者渲染异常等原因而出现白屏。
因此,本步骤中,通过监听资源加载状态,如果出现资源加载失败,则检查资源是否被标记有必要资源标识,如果有则判定WebView白屏并结束检测;如果出错的资源没有被标记必要资源标识,或者所有资源均加载成功,则继续进行下一步检测。
步骤S140,第三级检测:对WebView控件进行截屏以生成图像,比对图像的像素色值,若像素色值不单一则判定WebView不白屏并结束检测。
具体来说,检测参数还包括采样像素数;比对图像的像素色值,可包括:根据采样像素数对图像中的像素点进行采样;对比采样获得的像素点的色值。对图像中的像素点进行采样时,可采用均匀采样方式或不均匀采样方式;对比采样获得的像素点的色值,可包括:按色值对采样获得的像素点进行分组,使相同色值的像素点归类至相同组。从而,如果分得多组,说明页面中的像素不只单一色值,即像素色值不单一,可判定页面没有白屏并结束检测。
如果只采用像素色值检测的手段,选择一个时机对页面截屏,进行图像像素比对检测,若像素点都是同一色值则认为页面白屏,否则认为页面不白屏,则会导致检测检测不准确和不及时,也会消耗大量性能开销。具体来说,对于执行时机的选择,若选择DOM加载完成时刻,或者再延迟一段时间后开始执行截屏进行检测(主要是为了等待资源和业务数据加载完成),但由于页面资源加载和业务数据加载完成时机的不确定性,很可能在截屏时加载还没完成,或者早已加载结束,这分别会导致检测结果不准确和不及时的问题;另外,截屏生成图像会增加移动设备的内存负担,比对像素做为一个非常耗时的过程会增加设备的CPU负担,导致产生过多的性能开销。
本实施例的WebView白屏检测方法,不单纯依赖DOM的加载结果,也不单纯通过像素的比对结果来判定页面是否白屏,而是将DOM加载状态检测环节与像素对比检测环节联合起来,并且加入资源加载状态检测环节,形成一个三级检测解决方案。三级检测相互结合协同工作,能够覆盖全部白屏场景,并在白屏发生后立即做出检测响应,从而确保检测结果的准确性和及时性。每一级检测拥有不同的性能开销,按照开销从小到大形成递进关系,开销越大的层级越靠后,一旦前一级的检测结果能够对白屏进行判定,则不再进行下一级检测,从而确保检测产生的性能开销尽可能小。
图2示出一实施例中WebView白屏检测方法的完整步骤,结合图1和图2所示,步骤S110中获取的检测参数还包括超时时长和等待时长,步骤S140中,比对图像的像素色值,若像素色值单一则执行:
步骤S150,根据超时时长判断当前检测是否超时,若超时则判定WebView白屏并结束检测,若未超时则执行步骤S160。
判断当前检测是否超时时,可根据记录的当前检测已花费时长与设定的超时时长进行比较,如果当前检测已花费时长超过超时时长,说明在规定时间内页面加载超时或者遇到其他异常导致没有正常展示出内容,不管哪种原因,对用户来说都是白屏的表现,因此判定为白屏,检测结束。
步骤S160,执行等待时长的等待,然后返回步骤S140执行第三级检测,直至能够判定出页面是否白屏后结束检测。
综上,上述的WebView白屏检测方法,能够覆盖全部WebView白屏场景,并在白屏发生后立即做出检测响应,确保检测结果的准确性和及时性;此外,根据性能开销大小设置三级检测策略,尽可能兼顾性能开销,尤其是对必要资源加载失败这种最为主要的白屏产生场景,能够减少检测为APP运行设备所带来的内存和CPU开销。
进一步地,在一个实施例中,于WebView控件初始化时,还配置WebView控件的加载过程事件监听,包括:监听加载开始事件,记录加载页面的统一资源定位符URL作为加载URL,以当加载开始事件被触发时获得加载URL;监听加载出错事件,记录出错页面的URL作为出错URL,以当加载出错事件被触发时获得出错URL;监听DOM加载成功事件,作为第三级检测的触发条件。
从而,在第一级检测中,通过比对加载URL和出错URL,以获得DOM加载状态;在第二级检测中,通过检测出错URL中是否含有必要资源标识,以获得携带必要资源标识的资源的加载状态;以及,于DOM加载成功回调DOM加载成功事件后,触发第三级检测。
下面结合一个具体实施示例,对WebView白屏检测方法进行说明,WebView白屏检测方法的具体实施包括如下步骤:
步骤①,在WebView初始化时,设定检测需要的配置数据,包括:a)采样像素数,记为count,设定count=60,表示在图像中采样得到60个像素点;b)像素检测等待时长,记为interval,设定interval=20,单位毫秒;c)总检测超时时长,记为timeout,设定timeout=3000,单位毫秒;d)必要资源标识,设为字符串“showErrorTip”,由H5和Native共同约定。
步骤②,配置WebView的加载过程事件监听,包括:a)监听加载开始onPageStart事件,记下所加载页面的URL,记作loadUrl;b)监听加载出错onReceivedError事件,记下出错的URL,记作errorUrl;c)监听DOM加载成功onPageFinished事件,做为触发像素检测的时机。
步骤③,打开H5页面,WebView触发onPageStart事件,得到所加载的loadUrl。
步骤④,当遇到加载失败时,会触发onReceivedError事件,得到加载失败的errorUrl。
步骤⑤,执行第一级检测,比较步骤④中的errorUrl和步骤③中的loadUrl,如果两者相同,说明DOM加载失败,判定页面白屏并结束检测。
步骤⑥,执行第二级检测,通过检查步骤④中的errorUrl是否含有“showErrorTip”标识,判定出错的资源是否为必要资源,如果含有必要资源标识说明是必要资源加载失败,可判定页面白屏并结束检测。
步骤⑦,执行第三级检测,在DOM加载成功回调onPageFinished事件后,开始进行页面像素对比。具体地,将WebView区域截图生成一张图像,然后从图像中采样出步骤①中设定的count个像素,采样方式可以是均匀采样,也可以是不均匀采样,然后按照色值对这count个像素进行分组,同一色值的像素分在同一组,如果分得多组,说明页面中的像素不只单一色值,可判定页面没有白屏并结束检测。
步骤⑧,记下检测已经花费的时长,与步骤①中设定的超时时长timeout进行比较,如果超过timeout,说明在规定时间内页面加载超时或者遇到其他异常导致没有正常展示出内容,不管哪种原因,对用户来说都是白屏的表现,因此判定为白屏,检测结束。
步骤⑨,根据步骤①设定的等待时长interval,执行一段时长为interval的等待。
步骤⑩,返回步骤⑦再次进行像素检测,直到判定出页面是否白屏后结束检测。
上述的WebView白屏检测方法,通过三个不同级别的检测手段的协同作用,能够覆盖WebView全部白屏场景,实现在白屏发生的第一时间做出检测响应,确保检测结果的准确性和及时性,改善用户的使用体验;此外,三级检测的分级按照性能开销从小到大递进的方式,减少白屏检测产生的性能开销,节省计算资源。
本发明实施例还提供一种WebView白屏检测系统,可用于实现上述任意实施例描述的WebView白屏检测方法。上述任意实施例描述的WebView白屏检测方法的特征和原理均可应用至下面的WebView白屏检测系统实施例。在下面的WebView白屏检测系统实施例中,对已经阐明的关于WebView白屏检测的特征和原理不再重复说明。
图3示出一实施例中WebView白屏检测系统的主要模块,参照图3所示,本实施例中WebView白屏检测系统300包括:参数获取模块310,用于获取检测参数,检测参数至少包括必要资源标识,并触发:第一级检测模块320,用于监听WebView控件的文档对象模型DOM加载状态,若DOM加载失败则判定WebView白屏并结束检测,否则触发:第二级检测模块330,用于监听WebView控件的资源加载状态,若携带必要资源标识的资源加载失败则判定WebView白屏并结束检测,否则触发:第三级检测模块340,用于对WebView控件进行截屏以生成图像,比对图像的像素色值,若像素色值不单一则判定WebView不白屏并结束检测。
进一步地,WebView白屏检测系统300还可包括实现上述各WebView白屏检测方法实施例的其他流程步骤的模块,各个模块的具体原理可参照上述各WebView白屏检测方法实施例的描述,此处不再重复说明。
本发明的WebView白屏检测系统,能够通过三个不同级别的检测手段的协同作用,能够覆盖WebView全部白屏场景,实现在白屏发生的第一时间做出检测响应,确保检测结果的准确性和及时性,改善用户的使用体验;此外,三级检测的分级按照性能开销从小到大递进的方式,减少白屏检测产生的性能开销,节省计算资源。
本发明实施例还提供一种电子设备,包括处理器和存储器,存储器中存储有可执行指令,可执行指令被处理器执行时,实现上述任意实施例描述的WebView白屏检测方法。
本发明的电子设备,能够通过三个不同级别的检测手段的协同作用,能够覆盖WebView全部白屏场景,实现在白屏发生的第一时间做出检测响应,确保检测结果的准确性和及时性,改善用户的使用体验;此外,三级检测的分级按照性能开销从小到大递进的方式,减少白屏检测产生的性能开销,节省计算资源。
图4是本发明实施例中电子设备的结构示意图,应当理解的是,图4仅仅是示意性地示出各个模块,这些模块可以是虚拟的软件模块或实际的硬件模块,这些模块的合并、拆分及其余模块的增加都在本发明的保护范围之内。
如图4所示,电子设备600以通用计算设备的形式表现。电子设备600的组件包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行上述任意实施例描述的WebView白屏检测方法的步骤。例如,处理单元610可以执行如图1和图2所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一个或多个程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700通信,外部设备700可以是键盘、指向设备、蓝牙设备等设备中的一种或多种。这些外部设备700使得用户能与该电子设备600进行交互通信。电子设备600也能与一个或多个其它计算设备进行通信,所示计算机设备包括路由器、调制解调器。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读的存储介质,用于存储程序,程序被执行时实现上述任意实施例描述的WebView白屏检测方法。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行上述任意实施例描述的WebView白屏检测方法。
本发明的存储介质当被处理器执行时,能够通过三个不同级别的检测手段的协同作用,能够覆盖WebView全部白屏场景,实现在白屏发生的第一时间做出检测响应,确保检测结果的准确性和及时性,改善用户的使用体验;此外,三级检测的分级按照性能开销从小到大递进的方式,减少白屏检测产生的性能开销,节省计算资源。
程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,其可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括但不限于:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备,例如利用因特网服务提供商来通过因特网连接。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种WebView白屏检测方法,其特征在于,包括:
获取检测参数,所述检测参数至少包括必要资源标识,其中,若携带所述必要资源标识的资源缺失或出错,则导致WebView白屏;并执行:
第一级检测:监听WebView控件的文档对象模型DOM加载状态,若DOM加载失败则判定WebView白屏并结束检测,否则执行:
第二级检测:监听所述WebView控件的资源加载状态,若携带必要资源标识的资源加载失败则判定WebView白屏并结束检测,否则执行:
第三级检测:对所述WebView控件进行截屏以生成图像,比对所述图像的像素色值,若所述像素色值不单一则判定WebView不白屏并结束检测。
2.如权利要求1所述的WebView白屏检测方法,其特征在于,所述检测参数还包括超时时长;
所述比对所述图像的像素色值,若所述像素色值单一则执行:
根据所述超时时长判断当前检测是否超时,若超时则判定WebView白屏并结束检测。
3.如权利要求2所述的WebView白屏检测方法,其特征在于,所述检测参数还包括等待时长;
所述根据所述超时时长判断当前检测是否超时,若未超时则执行:
于所述等待时长后,返回执行所述第三级检测。
4.如权利要求1所述的WebView白屏检测方法,其特征在于,所述检测参数还包括采样像素数;
所述比对所述图像的像素色值,包括:
根据所述采样像素数对所述图像中的像素点进行采样;
对比采样获得的像素点的色值。
5.如权利要求4所述的WebView白屏检测方法,其特征在于,对所述图像中的像素点进行采样时,采用均匀采样方式或不均匀采样方式;
所述对比采样获得的像素点的色值,包括:
按色值对采样获得的像素点进行分组,使相同色值的像素点归类至相同组。
6.如权利要求1所述的WebView白屏检测方法,其特征在于,所述检测参数于所述WebView控件初始化时配置,所述必要资源标识由H5和Native共同约定;
于所述WebView控件初始化时,还配置所述WebView控件的加载过程事件监听,包括:
监听加载开始事件,记录加载页面的统一资源定位符URL作为加载URL,以当所述加载开始事件被触发时获得所述加载URL;
监听加载出错事件,记录出错页面的URL作为出错URL,以当所述加载出错事件被触发时获得所述出错URL;
监听DOM加载成功事件,作为所述第三级检测的触发条件。
7. 如权利要求6所述的WebView白屏检测方法,其特征在于,所述第一级检测中,通过比对所述加载URL和所述出错URL,以获得DOM加载状态;
所述第二级检测中,通过检测所述出错URL中是否含有所述必要资源标识,以获得携带所述必要资源标识的资源的加载状态;以及
于DOM加载成功回调所述DOM加载成功事件后,触发所述第三级检测。
8.一种WebView白屏检测系统,其特征在于,包括:
参数获取模块,用于获取检测参数,所述检测参数至少包括必要资源标识,其中,若携带所述必要资源标识的资源缺失或出错,则导致WebView白屏;并触发:
第一级检测模块,用于监听WebView控件的文档对象模型DOM加载状态,若DOM加载失败则判定WebView白屏并结束检测,否则触发:
第二级检测模块,用于监听所述WebView控件的资源加载状态,若携带必要资源标识的资源加载失败则判定WebView白屏并结束检测,否则触发:
第三级检测模块,用于对所述WebView控件进行截屏以生成图像,比对所述图像的像素色值,若所述像素色值不单一则判定WebView不白屏并结束检测。
9.一种电子设备,其特征在于,包括:
一处理器;
一存储器,所述存储器中存储有可执行指令;
其中,所述可执行指令被所述处理器执行时,实现如权利要求1-7任一项所述的WebView白屏检测方法。
10.一种计算机可读的存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7任一项所述的WebView白屏检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111672445.0A CN114327682B (zh) | 2021-12-31 | 2021-12-31 | WebView白屏检测方法、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111672445.0A CN114327682B (zh) | 2021-12-31 | 2021-12-31 | WebView白屏检测方法、系统、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327682A CN114327682A (zh) | 2022-04-12 |
CN114327682B true CN114327682B (zh) | 2023-07-18 |
Family
ID=81020853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111672445.0A Active CN114327682B (zh) | 2021-12-31 | 2021-12-31 | WebView白屏检测方法、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327682B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919377A (zh) * | 2016-07-05 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 确定应用程序的展示界面是否是白屏的方法及装置 |
CN110705596A (zh) * | 2019-09-04 | 2020-01-17 | 北京三快在线科技有限公司 | 白屏检测方法、装置、电子设备及存储介质 |
CN111061607A (zh) * | 2019-11-25 | 2020-04-24 | 贝壳技术有限公司 | 页面白屏的监控方法及监控装置 |
CN111782324A (zh) * | 2020-06-29 | 2020-10-16 | 平安普惠企业管理有限公司 | 应用界面跳转方法、装置、设备以及计算机可读存储介质 |
CN111881998A (zh) * | 2020-08-04 | 2020-11-03 | 天元大数据信用管理有限公司 | 一种白屏检测方法 |
US10963731B1 (en) * | 2020-10-13 | 2021-03-30 | Fmr Llc | Automatic classification of error conditions in automated user interface testing |
CN112700742A (zh) * | 2021-01-07 | 2021-04-23 | 中科网联数据科技有限公司 | 广告屏监测系统和方法 |
WO2021197136A1 (zh) * | 2020-04-03 | 2021-10-07 | 支付宝(杭州)信息技术有限公司 | 页面渲染检测方法以及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239878B2 (en) * | 2012-12-19 | 2016-01-19 | Amazon Technologies, Inc. | Interactivity analyses of web resources based on reload events |
-
2021
- 2021-12-31 CN CN202111672445.0A patent/CN114327682B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919377A (zh) * | 2016-07-05 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 确定应用程序的展示界面是否是白屏的方法及装置 |
CN110705596A (zh) * | 2019-09-04 | 2020-01-17 | 北京三快在线科技有限公司 | 白屏检测方法、装置、电子设备及存储介质 |
CN111061607A (zh) * | 2019-11-25 | 2020-04-24 | 贝壳技术有限公司 | 页面白屏的监控方法及监控装置 |
WO2021197136A1 (zh) * | 2020-04-03 | 2021-10-07 | 支付宝(杭州)信息技术有限公司 | 页面渲染检测方法以及装置 |
CN111782324A (zh) * | 2020-06-29 | 2020-10-16 | 平安普惠企业管理有限公司 | 应用界面跳转方法、装置、设备以及计算机可读存储介质 |
CN111881998A (zh) * | 2020-08-04 | 2020-11-03 | 天元大数据信用管理有限公司 | 一种白屏检测方法 |
US10963731B1 (en) * | 2020-10-13 | 2021-03-30 | Fmr Llc | Automatic classification of error conditions in automated user interface testing |
CN112700742A (zh) * | 2021-01-07 | 2021-04-23 | 中科网联数据科技有限公司 | 广告屏监测系统和方法 |
Non-Patent Citations (4)
Title |
---|
Ajax.NET在基于B/S模式的桥梁健康监测系统人机交互界面中的应用;王鸣辉;;江汉大学学报(自然科学版)(04);全文 * |
H5的白屏检测方案实践;樊影楠;《稀土掘金》;全文 * |
UIWebView白屏的监控&监控JS文件加载;Rain_ffll;《CSDN》;全文 * |
WebView白屏检测与处理;YouthLee;《稀土掘金》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114327682A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506300B (zh) | 一种用户界面测试方法、装置、服务器和存储介质 | |
CN110008110B (zh) | 用户界面的测试方法及装置 | |
WO2019161619A1 (zh) | 接口自动化测试方法、装置、设备及计算机可读存储介质 | |
CN104391797A (zh) | Gui控件的识别方法和装置 | |
WO2019214109A1 (zh) | 测试过程的监控装置、方法及计算机可读存储介质 | |
CN110673936B (zh) | 编排业务的断点续作方法、装置、存储介质及电子设备 | |
CN110196809B (zh) | 接口测试方法及装置 | |
CN111258913A (zh) | 算法自动测试方法、装置、计算机系统及可读存储介质 | |
CN114442930A (zh) | 组磁盘阵列的控制方法、装置、电子设备及可读存储介质 | |
CN109165372B (zh) | 一种网页加载方法、装置、设备及存储介质 | |
JP5006824B2 (ja) | テストプログラム管理システム | |
CN112181853A (zh) | 程序调试方法、装置及系统 | |
CN114327682B (zh) | WebView白屏检测方法、系统、电子设备和存储介质 | |
US20180373512A1 (en) | Method and device for simulating synchronous blocking in asynchronous environment, storage medium, server and terminal | |
CN112395194B (zh) | 一种接入测试平台的方法和装置 | |
CN113986768A (zh) | 应用程序稳定性测试方法、装置、设备及介质 | |
CN111741046B (zh) | 数据上报方法、获取方法、装置、设备及介质 | |
CN112612469A (zh) | 一种界面元素的处理方法、装置和电子设备 | |
CN111124423A (zh) | 一种基于多平台的编译检测方法、装置、服务器及介质 | |
CN113568840B (zh) | 一种识别过渡绘制的方法和系统 | |
CN113760706B (zh) | 网页调试方法及装置 | |
CN111522737B (zh) | 一种前端界面的自动化测试校验方法、装置及存储介质 | |
CN115827293A (zh) | 页面处理方法和装置 | |
CN115422487A (zh) | 页面白屏的检测方法、装置、存储介质和计算设备 | |
CN115659091A (zh) | 页面状态的检测方法及装置、存储介质、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |