CN114745146A - 跳转拦截方法、装置、可读存储介质及设备 - Google Patents
跳转拦截方法、装置、可读存储介质及设备 Download PDFInfo
- Publication number
- CN114745146A CN114745146A CN202110018328.6A CN202110018328A CN114745146A CN 114745146 A CN114745146 A CN 114745146A CN 202110018328 A CN202110018328 A CN 202110018328A CN 114745146 A CN114745146 A CN 114745146A
- Authority
- CN
- China
- Prior art keywords
- url
- page
- target
- jumped
- jump
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种跳转拦截方法、装置、可读存储介质及设备,在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,该目标URL集合是从当前显示页面的文档对象模型的字符串中提取到的;若响应于预设操作事件而加载的待跳转页面的URL位于目标URL集合中,禁止待跳转页面跳转。可见,本申请不是通过预置黑名单的方式对页面进行跳转控制,而是从当前显示页面的文档对象模型的字符串中实时提取需要跳转拦截的URL集合,该过程不需要预先知道要跳转拦截的URL是什么,实现了对当前显示页面的需要跳转拦截的URL的广泛覆盖,进而根据该目标URL集合进行跳转控制,能够提高在当前显示页面进行跳转拦截的有效性。
Description
技术领域
本发明涉及信息处理技术领域,具体涉及一种跳转拦截方法、装置、可读存储介质及设备。
背景技术
目前,终端设备中通常安装有各式各样的应用(application,APP),如社交应用、即时通讯应用、多媒体播放应用等等。在用户查看一些应用的过程,当点击应用显示的某个页面元素时,有可能会跳转到一个新的页面,但出于某种需求需要对该页面进行跳转拦截,即阻止跳转到新的页面。
现有技术中,跳转拦截的实现方式是:应用的客户端监测到点击事件时,获取待跳转的统一资源定位符(Uniform Resource Locator,URL),判断该URL是否在预置的黑名单中,如果在黑名单中则对其进行跳转拦截。
然而,黑名单并不能覆盖所有需要跳转拦截的URL,因此,现有的跳转拦截方式的有效性较低。
发明内容
有鉴于此,本发明实施例提供一种跳转拦截方法、装置、可读存储介质及设备,以提高跳转拦截的有效性。
为实现上述目的,本发明实施例提供如下技术方案:
一方面,提供一种跳转拦截方法,包括:
在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,所述目标URL集合是从所述当前显示页面的文档对象模型的字符串中提取到的;
若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,禁止所述待跳转页面跳转。
第二方面,提供一种跳转拦截装置,包括:
集合获取模块,用于在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,所述目标URL集合是从所述当前显示页面的文档对象模型的字符串中提取到的;
拦截模块,用于若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,禁止所述待跳转页面跳转。
第三方面,提供一种跳转拦截设备,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,实现如上任一项所述的跳转拦截方法的各个步骤。
第四方面,提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述的跳转拦截方法的各个步骤。
本发明实施例提供的跳转拦截方法、装置、可读存储介质及设备,在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,该目标URL集合是从当前显示页面的文档对象模型的字符串中提取到的;若响应于预设操作事件而加载的待跳转页面的URL位于目标URL集合中,禁止待跳转页面跳转。可见,本申请不是通过预置黑名单的方式对页面进行跳转控制,而是从当前显示页面的文档对象模型的字符串中实时提取需要跳转拦截的URL(即目标URL)集合,该过程不需要预先知道要跳转拦截的URL是什么,实现了对当前显示页面的需要跳转拦截的URL的广泛覆盖,进而根据该目标URL集合进行跳转控制,能够提高在当前显示页面进行跳转拦截的有效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1a为本发明实施例提供的跳转拦截的一种系统架构示意图;
图1b为本发明实施例提供的跳转拦截方法的一种实现流程图;
图2为本发明实施例提供的从当前显示页面的文档对象模型的字符串中提取目标URL集合的一种实现流程图;
图3a为本发明实施例提供的一个显示页面的局部示例图;
图3b为本发明实施例提供的图3a所示页面中左上角的商品图标对应的DOM结点的示例图;
图4为本发明实施例提供的跳转拦截装置的一种结构示意图;
图5为本发明实施例提供的跳转拦截设备的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的发明人研究发现,现有技术中,对于一个应用来说,用于跳转拦截的黑名单中的URL是由应用的开发人员指定的。但是,目前的一些应用(为便于叙述,记为第一应用),除了可以加载本应用的页面(为便于叙述,记为第一类页面)外,还可以加载其它应用(为便于叙述,记为第二应用)的页面(为便于叙述,记为第二类页面),比如,第一应用为第二应用提供导流页面(属于第一类页面),用户点击导流页面上的某个页面元素后,会跳转到用户点击的页面元素对应的页面(属于第二类页面,为便于叙述,记为第二类页面A),当用户点击第二类页面A上的某个页面元素时,会跳转到一个新的第二类页面(为便于叙述,记为第二类页面B)。对于第一类页面,由于是第一应用的开发人员开发的,因此,第一应用的开发人员可以知道第一应用中可以加载的各个页面的URL是否需要拦截,因此,对于第一类页面,第一应用的开发人员可以确定所有需要放入黑名单的URL。但是对于第二类页面,如果第二应用是由其他开发人员(比如,与第一应用的开发人员属于不同的公司)开发的,则第一应用的开发人员无法预先获知第二类页面B的URL,因此,也就无法对第二类页面B进行跳转拦截。而且,第二应用的开发人员可以随时更改第二类页面B,即更换URL,因此,基于现有技术中预置黑名单的方式,无法对第二类页面进行有效的跳转拦截。
为解决现有技术中存在的技术问题,本申请的基本思想是:从所显示页面的文档对象模型(Document Object Model,DOM)中提取需要跳转拦截的URL,构成目标URL集合,当从显示的页面捕获到点击事件时,若响应于该点击事件而加载了待跳转页面的URL,则基于该目标URL集合判断是否需要对待跳转页面进行跳转拦截。
本申请实施例中,涉及的应用可以为嵌入H5(第5版超文本标记语言,HTML5)页面的原生应用,H5页面可以是小程序的页面,或者,可以是RN(React Native)页面,其中,react native是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架React在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。
本申请实施例提供的跳转拦截方法可以基于图1a所示系统架构图实现,图1a所示系统架构图中,
wkwebview:用于终端承载网页的容器,由终端系统API(Application ProgramInterface,应用程序接口)提供。
h5控制器(h5Controller):用于承载wkwebview的容器,直接接收h5生命周期的回调事件,主要用于h5页面加载处理中心(TMFH5Center)和h5之间的桥接。
h5页面加载处理中心(TMFH5Center):以单例设计模式,创建全局单例对象(TMFH5Manager,图中未示出)来监听应用程序运行过程中所有h5页面的各种事件,包括但不限于:h5页面加载,分发事件的处理以及管理回调消息等。
其中,由于TMFH5Center是单例,因此,在应用程序运行过程中只会存在一个对象TMFH5Manager,它是用来管理应用程序中的所有h5页面的,而h5页面在应用程序运行过程中可能不只有一个,因此是1对多的关系。在每个h5页面执行加载、关闭等操作时,需要有h5Controller的直接管理,因此TMFH5Center需要持有每个h5Controller才能控制多个h5页面的加载顺序;例如,A页面加载完成后B页面才能开始加载,因此需要TMFH5Center持有A、B页面的H5Controller。H5Controller好比是容器,用来直接存放wkwebview,也就是图1a中所述的“承载”。
另外,由于h5页面的加载可能是多线程的,即同一时间加载多个h5页面,为了控制多个h5页面的加载顺序,可以在TMFH5Center中管理一个串行队列,用于管理多个h5页面的加载顺序,通常是一个h5页面加载完成后,才会加载另一个h5页面。其中,串行队列中存储各个h5页面的加载过程事件,比如,开始加载,加载过程中,加载成功,加载失败等等。
本申请的方案的具体实现流程可以由h5页面加载处理中心(TMFH5Center)来实现,具体实现方式可以参看后续实施例。
基于上述基本思想,本申请实施例提供的跳转拦截方法的一种实现流程图如图1b所示,可以包括:
步骤S101:在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,该目标URL集合是从当前显示页面的文档对象模型的字符串(以下简称DOM字符串)中提取到的。
该预设操作事件是用于触发页面跳转的事件,比如,该预设操作事件可以是点击事件,或者,可以是其它用于触发页面跳转的事件,比如,语音控制事件。具体预设操作事件如何触发页面跳转可以参看已有的成熟技术,由于其不是本申请关注的重点,这里不再详述。
目标URL集合可以是在捕获到预设操作事件前就从当前显示页面的DOM字符串中提取到了,或者,可以是在捕获到预设操作事件时才从当前显示页面的DOM字符串中提取目标URL进而得到目标URL集合。目标URL即为要跳转拦截的URL。具体从当前显示页面的DOM字符串中提取目标URL集合的方式可以参看后续内容。
该当前显示页面可以是客户端所属应用的第一类页面,也可以是其它应用的第二类页面。
步骤S102:若响应于预设操作事件而加载的待跳转页面的URL位于目标URL集合中,禁止待跳转页面跳转。
客户端捕获到预设操作事件后,会响应于预设操作事件而加载待跳转页面的URL和具体页面数据,在加载URL和具体页面数据后,先不进行渲染,而是先判断待跳转页面的URL是否在目标URL集合中,如果在,则说明待跳转页面是需要拦截的,因此,禁止待跳转页面跳转,即不进行页面渲染。
本申请实施例提供的跳转拦截方法,不是通过预置黑名单的方式对页面进行跳转控制,而是从当前显示页面的文档对象模型的字符串中实时提取需要跳转拦截的URL(即目标URL)集合,该过程不需要预先知道要跳转拦截的URL是什么,实现了对当前显示页面的需要跳转拦截的URL的广泛覆盖,进而根据该目标URL集合进行跳转控制,能够提高在当前显示页面进行跳转拦截的有效性。
在一可选的实施例中,上述从当前显示页面的文档对象模型的字符串中提取目标URL集合的一种实现流程图如图2所示,可以包括:
步骤S201:根据预置的若干结点标识,在文档对象模型的字符串中进行结点查找,得到至少部分结点标识所表征的目标结点。
本申请的发明人研究发现,对于任意一个页面,页面的文档对象模型中均包括若干个结点,每个结点都对应有页面中的相应内容,不同的结点对应页面中的不同内容。对于任意一个结点,若该结点对应的页面内容关联有跳转链接(即待跳转页面的URL),则可以在该结点的字符串中查找到该结点对应的页面内容关联的待跳转页面的URL。而且,页面的文档对象模型是开源的,因此,可以获取到页面的文档对象模型中的所有结点。基于此,开发人员可以预先确定哪些页面内容关联的跳转链接是需要拦截的,然后根据确定的页面内容确定对应的结点,然后获取所确定的结点的标识(即结点标识),以便获取目标URL。
页面的文档对象模型的结构通常是不变的,或者,仅仅文档对象模型中结点的相对位置发生改变,结点的内容不变,因此,通过预置的若干结点标识可以在文档对象模型的字符串中确定所有结点标识表征的目标结点,进而获取当前显示页面中所有需要跳转拦截的页面的URL。但是在一些极少数情况下,页面的文档对象模型也有可能会改变,例如删除或替换了某些结点,或增加了新的结点,此时通过预置的若干结点标识只能在文档对象模型的字符串中确定部分结点标识表征的目标结点,进而获取当前显示页面中部分需要跳转拦截的页面的URL。对于极少数情况下未监测到的结点,如果该结点对应的页面关联的跳转链接需要拦截,可以将该结点的标识添加到若干结点标识中以便于后续获取该结点对应的目标URL,从而对目标URL集合进行更新。
步骤S202:从各个目标结点的字符串中提取目标结点对应的目标URL,得到目标URL集合。
每个目标结点的字符串中可以提取一个目标URL。根据操作系统的不同,从目标结点的字符串中提取目标结点对应的目标URL的方式可以相同,也可以不同。
本申请的发明人研究发现,文档对象模型的节点对应页面中的页面元素,在确定哪些页面元素是需要拦截的对象后,就可以确定页面元素对应的文档对象模型的节点下的待跳转页面的URL就是需要拦截的跳转页面,由于文档对象模型的节点通常是不变的,因而,基于本申请能够准确获取需要拦截的跳转页面的URL,从而实现对页面跳转的精准控制。
图2所示实施例可以通过脚本函数实现。
在一可选的实施例中,上述从各个目标结点的字符串中提取目标结点对应的目标URL的一种实现方式可以为:
对于每一个目标结点,用正则匹配的方式从该目标结点的字符串中提取该目标结点对应的目标URL。
具体的,可以用正则表达式对该目标结点的所有字符串进行匹配,筛选出该目标结点的所有字符串中的各个URL分别作为目标URL。比如,作为示例,正则表达式可以为:[\'\"]?([^\'\"]*)/i)。但是根据具体应用场景不同,正则表达式可能是不同的,只要能匹配到URL即可。
本申请的发明人研究发现,不同的电子设备中安装的操作系统可能是不同的,而正则匹配的方式在一些操作系统(为便于叙述,记为第一类操作系统,比如android操作系统)中的应用效果很好,可以准确提取到目标URL,然而,在另一些操作系统(为便于叙述,记为第二类操作系统,比如IOS操作系统)中提取URL的效果却比较差,这主要是由于正则表达式中的某些字符是IOS系统中的关键字,这样在使用正则表达式对目标结点的所有字符串进行匹配时,会和操作系统中的语法产生冲突。而通过转义的方式对正则表达式进行转写需要耗费太大的人力,不便于开发,为了能在第二类操作系统中准确提取到URL,本申请实施例提供的从各个目标结点的字符串中提取目标结点对应的目标URL的另一种实现方式(为便于与正则匹配的方式相区分,将该另一种实现方式即为扫描方式)可以为:
对于每一个目标结点,判断该目标结点的字符串中是否存在第一预设关键字;该第一预设关键字为可跳转页面的URL标识符。
可选的,可以通过字符串查找算法(Knuth-Morris-Pratt,KMP)结合NSScanner的方式判断目标结点的字符串中是否存在第一预设关键字。比如,在IOS系统中,可以采用NSScanner的方式获取目标结点的字符串中的每一行字符串,对于获取的每一行字符串,采用KMP算法判断该行字符串中是否存在第一预设关键字。
其中,采用NSScanner的方式获取目标结点的字符串中的每一行字符串,的具体实现方式可以采用已有的实现方式,采用KMP算法判断该行字符串中是否存在第一预设关键字的具体实现过程也可以采用已有的实现方式。比如,
可以根据目标结点的字符串创建scanner对象和数组,具体可以使用Foundation框架的scannerWithString函数,传入字符串参数创建scanner对象和数组。
利用scanner对象获取每一行字符串。
对于每一行字符串,采用KMP算法判断该行字符串中是否存在第一预设关键字,具体可以包括:
将该行字符串作为主串,将第一预设关键字(为便于叙述,以第一预设关键字为jumpurl作为示例进行说明)作为模式串;
将主串和模式串第一个字符对齐,若第一个字符"j"不匹配,则模式串向后移一位,直到匹配模式串第一位字符匹配成功,比较模式串和主串的下一位,直到有一个字符与模式串不相同,则模式串向后移动一定的字符数(具体移动字符数的计算方式参看已有的方案,这里不再详述)。在第一预设关键字中没有相邻的重复字符(比如,scanner中的nn就是相邻的重复字符n,而jumpurl中的两个u则不属于重复字符)的情况下,在计算模式串向后移动的字符数时,无需做减法运算,实现简单。
若存在第一预设关键字,说明该第一预设关键字后边记录有可跳转页面的URL。
若存在第一预设关键字,对目标结点的字符串中位于第一预设关键字之后的字符串进行扫描,在扫描到第二预设关键字时,停止扫描,并从扫描过的字符串中提取该目标节点对应的目标URL。提取到的目标URL可以存储到数组中。
当扫描到第二预设关键字时,说明扫描到了可跳转页面的完整URL。第二预设关键字为.html。
具体的,可以采用函数对目标结点的字符串中位于第一预设关键字之后的字符串进行扫描,比如,在IOS系统中,可以利用scanUpToString函数对目标结点的字符串中位于第一预设关键字之后的字符串进行扫描。
如图3a-3b所示,图3a为本申请实施例提供的一个显示页面的局部示例图。图3b为图3a所示页面中左上角的商品图标对应的DOM结点的示例图。从图3b中第7行“<div class=“bd”id=“guessWrap””可以看到,图3a所示页面中左上角的商品图标对应的结点标识为“guessWrap”,从图3b中第7行的“<div”开始,到下文中与“<div”配对的“div>”,这之间的字符串为结点标识“guessWrap”所表征结点的字符串。图3b中未示出与图3b中第7行的“<div”配对的“div>”。
图3b中的矩形框所标注的区域即为图3a所示页面中左上角的商品图标对应的地址。图3b中第一预设关键字为“jumpurl”,第二预设关键字为“.html”,这两个关键字位于同一行,基于此可以确定图3a所示页面中左上角的商品图标关联的跳转链接为“//item.m.jd.com/product/100006934115.html”。
在一可选的实施例中,在从各个目标结点的字符串中提取目标结点对应的目标URL前,还可以先确定当前所处的操作系统,然后根据所确定的操作系统选取目标提取方法,利用目标提取方法从各个目标结点的字符串中提取目标结点对应的目标URL。其中,目标提取方法可以为上述提及的正则匹配的方式或者扫描方式。
在一可选的实施例中,若响应于预设操作事件而加载的待跳转页面的URL位于目标URL集合中,除了禁止待跳转页面跳转外,还可以包括:
查找是否存在与待跳转页面的URL对应的替换URL。
可选的,可以利用待跳转页面的URL对应的结点标识,以及预先配置的目标结点标识与替换URL的对应关系,查找是否存在与待跳转页面的URL对应的替换URL,如果查找到,说明存在与待跳转页面的URL对应的替换URL,否则,说明不存在与待跳转页面的URL对应的替换URL。
可选的,可以利用待跳转页面的URL,以及预先配置的目标URL与替换URL的对应关系,查找是否存在与目标URL对应的替换URL。其中,目标URL与替换URL的对应关系可以是在获取到目标URL结合后,将目标URL集合发送给服务器,由技术人员根据需要对目标URL配置对应的替换URL,在配置好目标URL与替换URL的对应关系之前,所有目标URL均无法查找到对应的替换URL。
若存在,重定向到替换URL。也就是跳转到替换URL对应的页面。
在一种可选的实施例中,上述查找是否存在与待跳转页面的URL对应的替换URL的一种实现方式可以为:
在客户端本地查找是否存在与待跳转页面的URL对应的替换URL。此时,需要客户端预先存储目标结点标识与替换URL对应的关系,或者,预先存储目标URL与替换URL的对应关系。可以由服务器将配置好的对应关系下发到客户端。服务器可以将所有目标结点标识与替换URL的对应关系下发到客户端,也可以仅将部分目标结点标识与替换URL对应关系下发到客户端。同理,服务器可以将所有目标URL与替换URL的对应关系下发到客户端,也可以仅将部分目标URL与替换URL的对应关系下发到客户端。
若本地存在替换URL,确定存在与待跳转页面的URL对应的替换URL。
在服务器将所有目标结点标识与替换URL的对应关系下发到客户端,或者,将所有目标URL与替换URL的对应关系下发到客户端的情况下,若本地不存在替换URL,则确定不存在与待跳转页面的URL对应的替换URL,此时可以输出弹窗提示,提示用户找不到网页。
在服务器仅将部分目标结点标识与替换URL对应关系下发到客户端,或者,仅将部分目标URL与替换URL的对应关系下发到客户端的情况下,若本地不存在替换URL,则可以向服务器发送查询请求,该查询请求中携带有待跳转页面的URL或对应的结点标识;服务器接收到查询请求后,根据待跳转页面的URL或结点标识查找是否存在对应的替换URL,如果存在,则说明存储与待跳转页面的URL对应的替换URL,则将替换URL返回客户端,否则向客户端返回弹窗提示。也就是说,客户端若接收到服务器返回的替换URL,确定存在与待跳转页面的URL对应的替换URL;否则,确定不存在与待跳转页面的URL对应的替换URL。在确定不存在与待跳转页面的URL对应的替换URL时,可以输出弹窗提示,提示用户找不到网页。
基于上述实施例,在确定目标URL集合后,还可以包括:
将目标URL集合发送至服务器,以便服务器获取目标URL集合中的各个目标URL与替换URL的对应关系。服务器在接收到目标URL集合后,可以由技术人员确定各个目标URL是否需要配置替换URL,以及如果需要配置替换URL,建立目标URL与替换URL的对应关系,将建立好的目标URL与替换URL的对应关系再上传到服务器。技术人员再上传目标URL与替换URL的对应关系时,还可以指定各个目标URL的优先级,以便服务器确定将哪些目标URL与替换URL的对应关系下发到客户端。
接收服务器发送的至少部分目标URL与替换URL的对应关系。
该至少部分目标URL与替换URL的对应关系是指从配置好的所有目标URL与替换URL的对应关系中选取至少部分目标URL与替换URL的对应关系发送至所述客户端。
服务器可以将优先级满足条件的目标URL与替换URL的对应关系发送至所述客户端。其中,优先级满足条件的目标URL的优先级高于优先级未满足条件的目标URL的优先级。而优先级未满足条件的目标URL与替换URL的对应关系则不发送至客户端,而是在服务器端存储。
在基于目标结点标识与替换URL的对应关系查找替换URL的情况下,目标结点标识与替换URL的对应关系也由技术人员配置,技术人员在将配置好的目标结点标识与替换URL的对应关系上传到服务器时,也可以指定目标结点标识的优先级,服务器可以将优先级满足条件的目标结点标识与替换URL的对应关系发送至所述客户端。其中,优先级满足条件的目标结点标识的优先级高于优先级未满足条件的目标结点标识的优先级。
在一可选的实施例中,上述查找是否存在与所述待跳转页面的URL对应的替换URL,包括:
向服务器发送查询请求,该查询请求中携带有待跳转页面的URL或对应的结点标识;
若接收到服务器返回的替换URL,确定存在与待跳转页面的URL对应的替换URL;否则,确定不存在与待跳转页面的URL对应的替换URL。
与前述实施例不同,前述实施例中,仅在客户端查找,或者,在客户端和服务器联合进行查找,本实施例中,直接在服务器中查找,在服务器的具体查找方式可以参看前述实施例,这里不再赘述。
在一可选的实施例中,本申请提供的跳转拦截方法还可以包括:
在加载待跳转页面的过程,记录待跳转页面加载过程事件和回调信息的关联关系。
在一些情况下,待跳转页面是分步加载的,比方说,先加载页面的上部,加载完上部后对页面上部的页面元素进行渲染,对上部渲染完后,再加载页面的中部,加载完中部后对页面中部的页面元素进行渲染,对中部渲染完成后,再加载页面的下部,加载完下部后,对页面下部的页面元素进行渲染。
不管是加载页面的哪一部分,客户端在加载该部分页面时会与服务器进行多次交互来获取回调信息(通常是每产生一个加载过程事件,就会获取一次回调信息),基于回调信息来完成加载,因此,如果待跳转页面是分步加载的,获取回调信息的次数会更多。为了提高页面渲染效率,本申请实施例在加载待跳转页面的过程中,记录了页面加载过程事件与回调信息的映射关系,该映射关系可以保存在串行队列中。基于此,在待跳转页面渲染完成后,如果用户浏览完该待跳转页面后又返回到了跳转前的页面,或关闭了该待跳转页面,之后,如果用户再次打开该页面,则可以从串行队列中读取回调信息,而不必再通过与服务器交互的方式获取回调信息,从而提高页面加载效率。
另外,通过保存页面加载过程事件与回调信息的映射关系,还可以在无网或弱网的情况下,实现页面的快速加载和渲染。
进一步地,如果待跳转页面是禁止跳转的页面,则在禁止待跳转页面跳转的同时或之后,还可以将待跳转页面对应的加载过程事件与回调信息的映射关系删除,避免无效信息占用存储资源。
本申请的发明人研究发现,在一些情况下,应用中的一些页面是可以确定不需要拦截的,比如,应用的开发人员已经确定应用中由其设计的所有要跳转的页面都是合法的,可以跳转的,此时,应用中由该应用的开发人员设计的需要跳转的页面是不需要拦截的。基于此,在一可选的实施例中,本申请实施例提供的跳转拦截方法还可以包括:
在获取目标URL集合之前,先判断当前显示页面是否为预置界面。
在判断结果为否时,再获取目标URL集合。避免执行不必要的流程。
可以根据当前显示页面携带的预置标签判断当前显示页面是否为预置界面,如果标签中记录的信息为预定信息,说明当前显示页面为预置界面,否则说明当前显示页面不是预置界面。
在一种情况下,在当前显示页面为预置界面时,说明当前显示页面是应用的开发人员设计的页面,此时不要对当前显示页面中的待跳转页面进行拦截,在当前显示页面不是预置界面时,说明当前显示页面不是应用的开发人员设计的页面,此时需要对当前显示页面中的一些待跳转页面进行拦截。
在另一些情况下,在应用中的页面是应用的开发人员设计时,有可能也是需要替换的,例如,在发布前,没有发现跳转页面中的问题,当发布后才发现问题,但更换跳转页面的话可能比较麻烦,此时就可以利用本申请实施例提供的方案对该跳转页面进行拦截替换。
与方法实施例相对应,本申请实施例还一种跳转拦截装置,本申请实施例提供的跳转拦截装置的一种结构示意图如图4所示,可以包括:
集合获取模块401和拦截模块402;其中,
集合获取模块401用于在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,所述目标URL集合是从所述当前显示页面的文档对象模型的字符串中提取到的;
拦截模块402用于若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,禁止所述待跳转页面跳转。
本申请实施例提供的跳转拦截装置,不是通过预置黑名单的方式对页面进行跳转控制,而是从当前显示页面的文档对象模型的字符串中提取需要跳转拦截的URL(即目标URL)集合,该过程不需要预先知道要跳转拦截的URL是什么,实现了对当前显示页面的需要跳转拦截的URL的广泛覆盖,进而根据该目标URL集合进行跳转控制,能够提高在当前显示页面进行跳转拦截的有效性。
在一可选的实施例中,所述当前显示页面为第5版超文本标记语言页面。
在一可选的实施例中,集合获取模块401可以包括:
查找单元,用于根据预置的若干结点标识,在所述文档对象模型的字符串中进行结点查找,得到至少部分结点标识所表征的目标结点;
提取单元,用于从各个目标结点的字符串中提取目标结点对应的目标URL,得到所述目标URL集合。
在一可选的实施例中,提取单元可以用于:
对于每一个目标结点,用正则匹配的方式从该目标结点的字符串中提取该目标结点对应的目标URL。
在一可选的实施例中,提取单元可以用于:
对于每一个目标结点,判断该目标结点的字符串中是否存在第一预设关键字;所述第一预设关键字为可跳转页面的URL标识符;
若存在所述第一预设关键字,对所述目标结点的字符串中位于所述第一预设关键字之后的字符串进行扫描,在扫描到第二预设关键字时,停止扫描,并从扫描过的字符串中提取该目标节点对应的目标URL。
在一可选的实施例中,还可以包括:
重定向模块,用于查找是否存在与所述待跳转页面的URL对应的替换URL;若存在,重定向到所替换URL。
在一可选的实施例中,重定向模块查找是否存在与所述待跳转页面的URL对应的替换URL时,用于:
在本地查找是否存在与所述待跳转页面的URL对应的替换URL;
若本地存在替换URL,确定存在与所述待跳转页面的URL对应的替换URL。
在一可选的实施例中,重定向模块还用于:
若本地不存在替换URL,确定不存在与所述待跳转页面的URL对应的替换URL;或者,
若本地不存在替换URL,向所述服务器发送查询请求,所述查询请求中携带有所述待跳转页面的URL或对应的结点标识;若接收到所述服务器返回的替换URL,确定存在与所述待跳转页面的URL对应的替换URL;否则,确定不存在与所述待跳转页面的URL对应的替换URL。
在一可选的实施例中,集合获取模块401可以用于:
将所述目标URL集合发送至服务器,以便服务器获取所述目标URL集合中的各个目标URL与替换URL的对应关系;将至少部分目标URL与替换URL的对应关系发送至所述客户端;
或者,
接收所述服务器发送的至少部分目标结点标识与替换URL的对应关系。
在一可选的实施例中,重定向模块查找是否存在与所述待跳转页面的URL对应的替换URL时,用户:
向服务器发送查询请求,所述查询请求中携带有所述待跳转页面的URL或对应的结点标识;
若接收到所述服务器返回的替换URL,确定存在与所述待跳转页面的URL对应的替换URL;否则,确定不存在与所述待跳转页面的URL对应的替换URL。
在一可选的实施例中,还可以包括:
建立模块,用于在加载所述待跳转页面的过程,记录所述待跳转页面加载过程事件和回调信息的关联关系。
在一可选的实施例中,还可以包括:
判断模块,用于在获取目标URL集合之前,判断所述当前显示页面是否为预置界面;
集合获取模块401用于若判断模块的判断结果为否,获取目标URL集合。
本发明实施例还提供一种跳转拦截设备,如终端、服务器等。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑等移动端,也可以是台式计算机等,但并不局限于此。在一些实施例中,上述终端或服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
跳转拦截设备可以配置上述跳转拦截装置。本发明实施例提供的跳转拦截设备的硬件结构框图的示例图如图5所示,可以包括:
处理器1,通信接口2,存储器3和通信总线4;
其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,处理器1具体用于执行存储器3中存储的计算机程序,以执行如下步骤:
在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,所述目标URL集合是从所述当前显示页面的文档对象模型的字符串中提取到的;
若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,禁止所述待跳转页面跳转。
可选的,所述计算机程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种可读存储介质,该存储介质可存储有适于处理器执行的计算机程序,所述计算机程序用于:
在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,所述目标URL集合是从所述当前显示页面的文档对象模型的字符串中提取到的;
若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,禁止所述待跳转页面跳转。
可选的,所述计算机程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图片资源获取方法的各种可选实现方式中提供的图片资源获取方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种跳转拦截方法,其特征在于,包括:
在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,所述目标URL集合是从所述当前显示页面的文档对象模型的字符串中提取到的;
若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,禁止所述待跳转页面跳转。
2.根据权利要求1所述的方法,其特征在于,所述当前显示页面为第5版超文本标记语言页面。
3.根据权利要求1所述的方法,其特征在于,从所述当前显示页面的文档对象模型的字符串中提取目标URL集合,包括:
根据预置的若干结点标识,在所述文档对象模型的字符串中进行结点查找,得到至少部分结点标识所表征的目标结点;
从各个目标结点的字符串中提取目标结点对应的目标URL,得到所述目标URL集合。
4.根据权利要求3所述的方法,其特征在于,所述从各个目标结点的字符串中提取目标结点对应的目标URL,包括:
对于每一个目标结点,用正则匹配的方式从该目标结点的字符串中提取该目标结点对应的目标URL;
或者,
对于每一个目标结点,判断该目标结点的字符串中是否存在第一预设关键字;所述第一预设关键字为可跳转页面的URL标识符;若存在所述第一预设关键字,对所述目标结点的字符串中位于所述第一预设关键字之后的字符串进行扫描,在扫描到第二预设关键字时,停止扫描,并从扫描过的字符串中提取该目标节点对应的目标URL。
5.根据权利要求1所述的方法,其特征在于,若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,还包括:
查找是否存在与所述待跳转页面的URL对应的替换URL;
若存在,重定向到所替换URL。
6.根据权利要求5所述的方法,其特征在于,所述查找是否存在与所述待跳转页面的URL对应的替换URL,包括:
在本地查找是否存在与所述待跳转页面的URL对应的替换URL;
若本地存在替换URL,确定存在与所述待跳转页面的URL对应的替换URL。
7.根据权利要求5所述的方法,其特征在于,所述查找是否存在与所述待跳转页面的URL对应的替换URL,包括:
向服务器发送查询请求,所述查询请求中携带有所述待跳转页面的URL或对应的结点标识;
若接收到所述服务器返回的替换URL,确定存在与所述待跳转页面的URL对应的替换URL;否则,确定不存在与所述待跳转页面的URL对应的替换URL。
8.根据权利要求1-7任意一项所述的方法,其特征在于,还包括:
在加载所述待跳转页面的过程,记录所述待跳转页面加载过程事件和回调信息的关联关系。
9.根据权利要求1-7任意一项所述的方法,其特征在于,在获取目标URL集合之前,还包括:
判断所述当前显示页面是否为预置界面;
若判断结果为否,则获取目标URL集合。
10.一种跳转拦截装置,其特征在于,包括:
集合获取模块,用于在客户端的当前显示页面捕获到预设操作事件时,获取目标URL集合,所述目标URL集合是从所述当前显示页面的文档对象模型的字符串中提取到的;
拦截模块,用于若响应于所述预设操作事件而加载的待跳转页面的URL位于所述目标URL集合中,禁止所述待跳转页面跳转。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110018328.6A CN114745146B (zh) | 2021-01-07 | 2021-01-07 | 跳转拦截方法、装置、可读存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110018328.6A CN114745146B (zh) | 2021-01-07 | 2021-01-07 | 跳转拦截方法、装置、可读存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114745146A true CN114745146A (zh) | 2022-07-12 |
CN114745146B CN114745146B (zh) | 2023-07-14 |
Family
ID=82273938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110018328.6A Active CN114745146B (zh) | 2021-01-07 | 2021-01-07 | 跳转拦截方法、装置、可读存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114745146B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045954A1 (zh) * | 2022-08-31 | 2024-03-07 | 华为云计算技术有限公司 | 一种获取次级页面的方法、装置及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370740A (zh) * | 2017-07-28 | 2017-11-21 | 北京五八信息技术有限公司 | 跳转拦截方法和装置 |
TWI610190B (zh) * | 2016-09-14 | 2018-01-01 | 健行學校財團法人健行科技大學 | 具標籤減量化之網頁處理方法及其生成方法 |
CN110647373A (zh) * | 2019-09-20 | 2020-01-03 | 北京小米移动软件有限公司 | 应用页面拦截方法及装置 |
-
2021
- 2021-01-07 CN CN202110018328.6A patent/CN114745146B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI610190B (zh) * | 2016-09-14 | 2018-01-01 | 健行學校財團法人健行科技大學 | 具標籤減量化之網頁處理方法及其生成方法 |
CN107370740A (zh) * | 2017-07-28 | 2017-11-21 | 北京五八信息技术有限公司 | 跳转拦截方法和装置 |
CN110647373A (zh) * | 2019-09-20 | 2020-01-03 | 北京小米移动软件有限公司 | 应用页面拦截方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045954A1 (zh) * | 2022-08-31 | 2024-03-07 | 华为云计算技术有限公司 | 一种获取次级页面的方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114745146B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150058407A1 (en) | Systems, methods, and apparatuses for implementing the simultaneous display of multiple browser client cursors at each browser client common to a shared browsing session | |
CN105843815B (zh) | 页面评论处理方法、装置和浏览器 | |
JP2019520624A (ja) | ページコンポーネント動的レイアウト | |
CN109981322B (zh) | 基于标签的云资源管理的方法和装置 | |
AU2014400621B2 (en) | System and method for providing contextual analytics data | |
CN108632219B (zh) | 一种网站漏洞检测方法、检测服务器、系统及存储介质 | |
US10496696B2 (en) | Search method and apparatus | |
US10693971B2 (en) | Identifying the best suitable application to open a file shared via a link | |
CN109829121B (zh) | 一种点击行为数据上报的方法和装置 | |
CN103313289A (zh) | Wap系统自动化测试系统和方法 | |
CN111866158B (zh) | 路由方法、装置、计算机设备和存储介质 | |
CN106557584A (zh) | 一种网址收藏方法及装置 | |
US11062019B2 (en) | System and method for webpages scripts validation | |
CN102831179B (zh) | 网页处理方法及装置 | |
US20240098499A1 (en) | Secure URL Shortener For Character-Limited Messages | |
CN114745146A (zh) | 跳转拦截方法、装置、可读存储介质及设备 | |
KR101659147B1 (ko) | 정보 처리 장치, 및 그의 제어 방법 | |
CN112836148B (zh) | 报表显示方法和装置、存储介质及电子设备 | |
CN112084445B (zh) | 信息处理系统、方法以及设备、存储介质 | |
CN110061864B (zh) | 一种域名配置自动化验证的方法和系统 | |
CN113468446A (zh) | 一种支持识别第三方二维码数据的方法、系统及设备 | |
CN111966506A (zh) | 基于不同应用程序的内容分享方法和计算机设备 | |
CN108737133A (zh) | 用于cdn静态网络修复的方法及装置 | |
CN111368135B (zh) | 视频嗅探方法和装置 | |
CN113836405B (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 |