CN108830268A - 内容获取方法、装置、终端及存储介质 - Google Patents
内容获取方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN108830268A CN108830268A CN201810525031.7A CN201810525031A CN108830268A CN 108830268 A CN108830268 A CN 108830268A CN 201810525031 A CN201810525031 A CN 201810525031A CN 108830268 A CN108830268 A CN 108830268A
- Authority
- CN
- China
- Prior art keywords
- content
- callback interface
- object content
- dynamic proxy
- party
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开实施例提供了一种内容获取方法、装置、终端及存储介质,涉及计算机技术领域,该方法包括:接收内容获取信号;确定与目标内容对应的内容回调接口;根据内容回调接口设置动态代理对象;当目标内容***作***调用时,通过动态代理对象截获目标内容。在目标应用程序中提取得到目标内容后,由于该目标内容会被调用至内容回调接口,本公开通过设置动态代理对象,目标内容需要通过动态代理对象转发至内容回调接口,也即可以通过动态代理对象对目标内容进行截获,避免了由于OCR识别导致的计算量过大,削弱***性能的问题,同时也避免了OCR识别存在识别错误的问题。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种内容获取方法、装置、终端及存储介质。
背景技术
在使用移动终端的过程中,通常需要对用户界面中的文字内容进行获取以实现其他功能,由于在手机上安装的第三方浏览器中,获取网页中的文字内容的接口并不开放,终端操作***无法通过该获取网页中的文字内容的接口获取网页的文字内容。
相关技术中通过将用户界面作为图像进行OCR(Optical CharacterRecognition,光学字符识别)的方式,得到用户界面中的文字内容。
发明内容
本公开实施例提供了一种文本内容获取方法、装置、终端及存储介质,可以解决通过OCR识别对用户界面中的文字内容进行识别的方式,数据的处理量较大,影响***的性能且无法避免OCR识别错误的问题。所述技术方案如下:
根据本公开的第一方面,提供了一种内容获取方法,应用于终端的操作***中,所述方法包括:
接收内容获取信号,所述内容获取信号用于对目标应用程序中的目标文本内容进行获取;
确定与所述目标内容对应的内容回调接口,所述内容回调接口用于对所述目标应用程序中的所述目标内容进行调用;
根据所述内容回调接口设置动态代理对象,所述动态代理对象用于将所述目标应用程序中被调用的所述目标内容转发至所述内容回调接口;
当所述目标内容被所述操作***调用时,通过所述动态代理对象截获所述目标内容。
在一个可选的实施例中,所述当所述目标内容被所述操作***调用时,通过所述动态代理对象截获所述目标内容,包括:
确定所述目标应用程序中与所述目标内容对应的内容显示控件,所述内容显示控件用于显示所述目标内容;
通过所述内容显示控件提取所述目标内容;
将所述目标内容通过所述动态代理对象调用至所述内容回调接口,所述动态代理对象用于在调用过程中对所述目标内容进行截获。
在一个可选的实施例中,所述目标应用程序为第三方浏览器应用程序;
所述通过所述内容显示控件提取所述目标内容,包括:
通过所述第三方浏览器应用程序的第三方内核从所述内容显示控件提取所述目标内容。
在一个可选的实施例中,所述目标内容为目标网页中的内容;
所述通过所述第三方浏览器应用程序的第三方内核根据所述内容显示控件提取所述目标内容,包括:
反射调用所述内容显示控件对应的脚本执行方法,向所述目标网页注入内容提取脚本,所述内容提取脚本用于对所述目标内容进行提取;
通过所述第三方内核执行所述内容提取脚本,提取得到所述目标内容。
在一个可选的实施例中,所述确定与目标内容对应的内容回调接口,包括:
通过钩子技术对所述目标内容对应的内容回调接口进行钩取。
根据本公开的第二方面,提供了一种内容获取装置,应用于终端的操作***中,所述装置包括:
接收模块,被配置为接收内容获取信号,所述内容获取信号被配置为对目标应用程序中的目标内容进行获取;
确定模块,被配置为确定与所述目标内容对应的内容回调接口,所述内容回调接口被配置为对所述目标应用程序中的所述目标内容进行调用;
设置模块,被配置为根据所述内容回调接口设置动态代理对象,所述动态代理对象被配置为将所述目标应用程序中被调用的所述目标内容转发至所述内容回调接口;
截获模块,被配置为当所述目标内容被所述操作***调用时,通过所述动态代理对象截获所述目标内容。
在一个可选的实施例中,所述截获模块,包括:
确定子模块,被配置为确定所述目标应用程序中与所述目标内容对应的内容显示控件,所述内容显示控件被配置为显示所述目标内容;
提取子模块,被配置为通过所述内容显示控件提取所述目标内容;
调用子模块,被配置为将所述目标内容通过所述动态代理对象调用至所述内容回调接口,所述动态代理对象被配置为在调用过程中对所述目标内容进行截获。
在一个可选的实施例中,所述目标应用程序为第三方浏览器应用程序;
所述提取子模块,还被配置为通过所述第三方浏览器应用程序的第三方内核从所述内容显示控件提取所述目标内容。
在一个可选的实施例中,所述目标内容为目标网页中的内容;
所述提取子模块,还被配置为反射调用所述内容显示控件对应的脚本执行装置,向所述目标网页注入内容提取脚本,所述内容提取脚本被配置为对所述目标内容进行提取;
所述提取子模块,还被配置为通过所述第三方内核执行所述内容提取脚本,提取得到所述目标内容。
在一个可选的实施例中,所述确定模块,还被配置为通过钩子技术对所述目标内容对应的内容回调接口进行钩取。
根据本公开的第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上述本公开实施例的第一方面及其可选实施例中的任一所述的内容提取方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上述本公开实施例的第一方面及其可选实施例中的任一所述的内容提取方法。
本公开实施例提供的技术方案的有益效果至少包括:
在目标应用程序中提取得到目标内容后,由于该目标内容会被调用至内容回调接口,通过设置动态代理对象,目标内容需要通过动态代理对象转发至内容回调接口,也即可以通过动态代理对象对目标内容进行截获,避免了由于OCR识别导致的计算量过大,削弱***性能的问题,同时也避免了OCR识别存在识别错误的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。
图1是本公开一个示例性实施例提供的终端的结构框图;
图2是本公开一个示例性实施例提供的文本内容获取方法的流程图;
图3是本公开另一个示例性实施例提供的文本内容获取方法的流程图;
图4是本公开另一个示例性实施例提供的文本内容获取方法的流程图;
图5是本公开一个示例性实施例提供的文本内容获取装置的结构框图;
图6是本公开一个示例性实施例提供的终端的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在使用移动终端的过程中,通常需要对用户界面中的文本内容进行获取以实现其他功能,如:获取用户界面中的文本内容并对文本内容进行自动搜索,或者获取用户界面中的文本内容,并对文本内容进行分词操作得到多个独立的词汇,用户可以对该多个独立的词汇进行复制、搜索、翻译等操作。示意性的,用户对用户界面中的文字部分进行长按操作,操作***根据该长按操作首先获取该用户界面中的文字部分的文本内容,然后对该文本内容进行分词处理。
操作***在对用户界面中的文本内容进行获取时,以文本内容显示在终端自带的浏览器应用程序中为例,操作***会通过该浏览器应用程序的内核提供的端口对网页中的文本内容进行获取。然而,用户通常会在终端上安装第三方浏览器进行使用,而第三方浏览器的第三方内核通常并不会开放主动获取网页中的文本内容的接口,即终端的操作***无法通过主动调用的方式获取第三方浏览器应用程序中显示的网页中的文本内容,也无法对网页中的文本内容进行进一步操作。
首先,对本公开中涉及的名词进行介绍:
内容回调接口:是指为应用程序中对文本内容或图像内容进行调用的接口。可选地,该内容回调接口通常是与应用程序的内核对应的回调接口,如:第三方浏览器应用程序的第三方内核对应有一个回调接口作为该内容回调接口。可选地,该内容回调接口还可以对其他形式的内容或者接口进行调用,如:对音频进行调用、对接口进行调用等。可选地,应用程序可以通过该内容回调接口对内容或者接口进行内部调用,也可以通过该内容回调接口在应用程序和安装有该应用程序的操作***之间进行外部调用。可选地,当该应用程序的内核未开放对文本内容进行获取的接口时,操作***无法通过直接调用的方式对文本内容进行获取,但应用程序的内核可以通过内容回调接口主动将文本内容发送至操作***。
动态代理对象:是指对应用程序中被调用的内容进行代理接收的对象,示意性的,针对应用程序A的内核对应的内容回调接口设置动态代理对象后,当应用程序A中的文本内容作为参数被调用时,首先被发送至动态代理对象,动态代理对象会将接收到的文本内容再发送至内容回调接口。
反射调用:反射调用是一种Java语言中动态获取信息以及动态调用方法的机制,该反射调用机制是指应用程序在运行状态中,对于任意一个类,都能够获取这个类的属性和方法,对于任意一个对象,都能够调用这个对象的方法和属性。
图1是本公开一个示例性实施例提供的终端100的结构框图,如图1所示,该终端100包括:处理器11、存储器12、通信组件13以及显示屏14;
处理器11包括一个或一个以上的处理核心。
存储器12用于存储程序指令和/或数据,处理器11被配置为执行存储器12中的程序指令,从而实现各种功能应用以及数据处理。可选地,存储器12中存储的程序指令被执行时用于实现本公开各个实施例提供的文本内容获取方法中由服务器执行的步骤。存储器12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
通信组件13用于实现终端100的通信功能,通信组件13可以是无线通信组件,比如RF(Radio Frequency,射频)电路、移动通信芯片、WiFi通信芯片;通信组件13还可以是有线通信组件,比如,光纤接口、RJ45网卡及接口等。
显示屏14用于显示用户界面和接收外部输入的触摸操作。可选地,显示屏14是触摸屏,该触摸屏可以收集用户在其上或附近的触摸操作。可选地,触摸屏是支持悬浮触控的触摸屏,和/或,支持压力触控的触摸屏。
可选地,存储器12中存储有操作***120,该操作***中包括内核层140和应用层160。应用层160位于内核层140之上,应用层160包括至少一个应用程序,且应用层160中包括终端出厂时自带的原生应用程序,也可以包括后期进行下载安装的第三方厂商提供的第三方应用程序。示意性的,应用层160包括:应用程序A和应用程序B,其中,应用程序A包括内核a,应用程序B包括内核b,内核a又称为应用程序A的渲染引擎,内核b又称为应用程序B的渲染引擎。可选地,应用程序包括但不限于:浏览器、即时通信类应用程序、新闻类应用程序、导航类应用程序、点评类应用程序、社交类应用程序、博客类应用程序中的至少一种。
上述结构仅为对终端的示意性说明,本领域技术人员可以知晓,终端还可以包括比上述示意更多或更少的组件,比如,终端还可以包括扬声器、麦克风、输入/输出(I/O)组件、电源等。
图2是本公开一个示例性实施例提供的文本内容获取方法流程图,如图2所示,以该文本内容获取方法应用于如图1所示的操作***120中为例进行说明,该内容获取方法包括:
步骤201,接收内容获取信号。
该内容获取信号用于对目标应用程序中的目标内容进行获取。
可选地,该内容获取信号可以是用户通过对终端进行操作生成的,也可以是操作***根据预先设置的定时器生成的,本公开实施例中对内容获取信号的生成方式不做限定。
可选地,用户可以在终端的用户界面中进行长按操作生成内容获取信号,当终端的显示屏为压力触控显示屏时,用户也可以在用户界面中进行压力触控生成内容获取信号;当该终端为台式电脑、便携式膝上笔记本电脑时,用户可以通过外部设备的输入生成内容获取信号,如:用户可以通过键盘以输入快捷键的方式生成内容获取信号。
步骤202,确定与目标内容对应的内容回调接口。
可选地,该内容回调接口用于对目标应用程序中的目标内容进行调用。可选地,该与目标内容对应的内容回调接口即为与上述目标应用程序的内核对应的内容回调接口。可选地,当终端中安装有两个应用程序对应的内核为同一个内核时,该两个应用程序可以对应同一个内容回调接口,也可以分别对应一个内容回调接口。示意性的,以浏览器应用程序为例进行说明,浏览器应用程序A对应的内核为内核a,浏览器应用程序B对应的内核为内核b,浏览器应用程序C对应的内核为内核a,则内核a对应内容回调接口1,内核b对应内容回调接口2,则,当目标内容为应用程序A或者应用程序C中显示的内容时,对应的内容回调接口为内容回调接口1,当目标内容为应用程序B中显示的内容时,对应的内容回调接口为内容回调接口2。
步骤203,根据内容回调接口设置动态代理对象。
可选地,该动态代理对象用于将目标应用程序中被调用的目标内容转发至内容回调接口。
可选地,该动态代理对象为终端的操作***针对该内容回调接口设置的用于实现动态代理的对象。
可选地,该动态代理对象为终端的操作***根据该内容回调接口设置的用于在调用过程中截获目标内容的对象。
步骤204,当目标内容***作***调用时,通过动态代理对象截获目标内容。
可选地,上述步骤201中的获取信号可以认为是用户对目标内容进行获取的请求,当该目标内容被发送至内容回调接口时,通过动态代理对象截获目标内容。
可选地,当目标应用程序的内核不支持外部调用目标内容,即操作***无法通过调用目标内容的方式主动获取目标内容时,通过动态代理对象对目标内容进行截获,即通过动态代理对象,以间接获取的方式获取该目标内容。
综上所述,本实施例提供的内容获取方法,通过设置动态代理对象,目标内容需要通过动态代理对象转发至内容回调接口,也即可以通过动态代理对象对目标内容进行截获,避免了由于OCR识别导致的计算量过大,削弱***性能的问题,同时也避免了OCR识别存在识别错误的问题。
在一个可选的实施例中,图1所示的操作***120在获取目标文本内容的过程中,首先需要通过该目标文本内容对应的文本内容显示控件对目标文本内容进行提取,如图3所示,图3是本公开另一个示例性实施例提供的文本内容获取方法流程图,以该文本内容获取方法应用于如图1所示的操作***120中,以目标内容为目标文本内容,内容获取信号为文本获取信号为例进行说明,该文本内容获取方法包括:
步骤301,接收文本获取信号。
该文本获取信号用于对目标应用程序中的目标文本内容进行获取。
可选地,该文本获取信号可以是用户通过对终端进行操作生成的,也可以是操作***根据预先设置的定时器生成的,本公开实施例中对文本获取信号的生成方式不做限定。
示意性的,当文本获取信号是用户通过对终端进行操作产生时,用户在用户界面中对目标文本内容对应的区域进行长按选择操作,从而生成文本获取信号。
步骤302,确定与目标文本内容对应的内容回调接口。
可选地,该内容回调接口用于对目标应用程序中的目标文本内容进行调用。可选地,该与目标文本内容对应的内容回调接口即为与上述目标应用程序的内核对应的内容回调接口。
步骤303,根据内容回调接口设置动态代理对象。
可选地,该动态代理对象用于将目标应用程序中被调用的目标文本内容转发至内容回调接口。
可选地,该动态代理对象为终端的操作***针对该内容回调接口设置的用于实现动态代理的对象。
可选地,该动态代理对象为终端的操作***根据该内容回调接口设置的用于在调用过程中截获目标文本内容的对象。
步骤304,确定目标应用程序中与目标文本内容对应的文本内容显示控件。
可选地,该文本内容显示控件用于显示目标文本内容。示意性的,当目标文本内容为网页中的文本内容时,该文本内容显示控件为浏览器中的网页显示控件(英文:webview)。示意性的,在目标应用程序中确定该webview控件。
值得注意的是,目标文本内容为网页中的文本内容时,该目标应用程序可以是浏览器应用程序,也可以是其他能够打开网页的应用程序。
步骤305,通过文本内容显示控件提取目标文本内容。
可选地,操作***可以通过直接向该目标应用程序的内核发送文本内容提取请求的方式对目标文本内容进行提取,也可以通过反射调用的方式对目标文本内容进行提取。
值得注意的是,在执行完上述步骤301后,步骤302至步骤303和步骤304至步骤305可以同时执行,也可以先执行步骤302至步骤303再执行步骤304至步骤305,还可以先执行步骤304至步骤305再执行步骤302至步骤303,其中,步骤302至步骤303也可以是在之前从文本内容显示控件获取文本内容的过程中已执行并持续执行的,即该动态代理对象已设置过,且持续存在。
步骤306,将目标文本内容通过动态代理对象调用至内容回调接口。
可选地,该动态代理对象用于在调用过程中对目标文本内容进行截获。
可选地,当目标应用程序的内核提取得到该目标文本内容后,将该目标文本内容发送至内容回调接口进行调用。
示意性的,当需要将目标文本内容主动发送至操作***时,则通过该内容回调接口将该目标文本内容主动发送至操作***;当需要对该目标文本内容在目标应用程序中进行内部调用时,则通过该内容回调接口对该目标文本内容进行内部调用;当操作***通过反射调用的方式从内核提取得到目标文本内容时,则通过内容回调接口将该目标文本内容返回至操作***,即,无论何种调用情况,该目标文本内容都需要通过内容回调接口进行调用。
而由于目标文本内容发送至内容回调接口需要通过动态代理对象,即该动态代理对象在调用的过程中能够先对目标文本内容进行截获,再将该目标文本内容转发至内容调用接口,而动态代理对象在截获该目标文本内容后,将该目标文本内容发送至操作***。
值得注意的是,上述内容还可以替代实现为图像内容、音频内容、视频内容等。
综上所述,本实施例提供的文本内容获取方法,通过设置动态代理对象,目标文本内容需要通过动态代理对象转发至内容回调接口,也即可以通过动态代理对象对目标文本内容进行截获,避免了由于OCR识别导致的计算量过大,削弱***性能的问题,同时也避免了OCR识别存在识别错误的问题。
在一个可选的实施例中,该目标应用程序为第三方浏览器应用程序,该第三方浏览器应用程序对应有第三方内核,如图4所示,图4是本公开另一个示例性实施例提供的文本内容获取方法流程图,以该文本内容获取方法应用于如图1所示的操作***120中,以目标内容为目标文本内容,内容获取信号为文本获取信号为例进行说明,该文本内容获取方法包括:
步骤401,接收文本获取信号。
该文本获取信号用于对第三方浏览器应用程序中的目标文本内容进行获取。可选地,该目标文本内容可以该第三方浏览器应用程序中显示的网页中的内容。
值得注意的是,该第三方浏览器应用程序可以是第三方浏览器,也可以是第三方能够实现浏览器功能的应用程序。如:某个即时通讯应用程序能够实现浏览器功能对网页进行浏览,则该即时通讯应用程序也为第三方浏览器应用程序。
可选地,该文本获取信号可以是用户通过对终端进行操作生成的,也可以是操作***根据预先设置的定时器生成的,本公开实施例中对文本获取信号的生成方式不做限定。
步骤402,通过钩子技术对目标文本内容对应的内容回调接口进行钩取。
可选地,该钩子技术(英文:hook)是一种对接口或者方法进行钩取的机制。可选地,该hook的本质为函数的调用,通过hook可以钩取该目标文本内容对应的内容回调接口。
可选地,该内容回调接口用于对目标应用程序中的目标文本内容进行调用。可选地,该与目标文本内容对应的内容回调接口即为与上述目标应用程序的内核对应的内容回调接口。
步骤403,根据内容回调接口设置动态代理对象。
可选地,该动态代理对象用于将目标应用程序中被调用的目标文本内容转发至内容回调接口。
可选地,该动态代理对象为终端的操作***针对该内容回调接口设置的用于实现动态代理的对象。
可选地,该动态代理对象为终端的操作***根据该内容回调接口设置的用于在调用过程中截获目标文本内容的对象。
可选地,该当通过动态代理方式hook上述内容回调接口时,可以得到该动态代理对象。示意性的,通过动态代理方式hook内容回调接口onReceiveValue(),得到动态代理对象为mProxySubject。
步骤404,确定目标应用程序中与目标文本内容对应的文本内容显示控件。
可选地,该文本内容显示控件用于显示目标文本内容。示意性的,当目标文本内容为网页中的文本内容时,该文本内容显示控件为浏览器中的网页显示控件(英文:webview)。示意性的,在目标应用程序中确定该webview控件。
值得注意的是,目标文本内容为网页中的文本内容时,该目标应用程序可以是浏览器应用程序,也可以是其他能够打开网页的应用程序。
步骤405,通过第三方浏览器应用程序的第三方内核根据文本内容显示控件提取目标文本内容。
可选地,操作***可以通过直接向该目标应用程序的内核发送文本内容提取请求的方式对目标文本内容进行提取,也可以通过反射调用的方式对目标文本内容进行提取。
以通过反射调用的方式对目标文本内容进行提取,以及目标文本内容为目标网页中的文本内容为例进行说明,示意性的,操作***反射调用目标网页中的文本内容显示控件对应的脚本执行(英文:evaluateJavaScript)方法,向目标网页注入文本内容提取脚本,其中,该文本内容提取脚本用于对目标文本内容进行提取;通过第三方内核执行该文本内容提取脚本,提取得到目标文本内容。
示意性的,结合具体的代码对上述步骤405进行说明,首先获取该目标文本内容对应的webview控件,反射调用该webview控件的evaluateJavaScript方法向目标网页注入文本内容提取脚本,该文本内容提取脚本的脚本内容为“document.body.innerText”,其中,document表示文档,body表示webview控件的主体部分,innerText表示webview控件中的文本内容,即该文本内容提取脚本表示提取该webview控件中的文本内容,该文本内容提取脚本注入到目标网页中后,第三方内核对该文本内容提取脚本进行执行,并提取得到文本内容,提取得到的文本内容会通过第三方内核的接口回调方式返回至回调接口onReceiveValue(),对该目标文本内容进行调用的代码为“mMethodEvaluateJavascript.invoke(webview,new Object[]{script,mProxySubject});”其中,mMethodEvaluateJavascript即为反射获取的EvaluateJavascript方法Method对象,mProxySubject为返回内容回调接口的动态代理对象,invoke为调用,new Object[]为调用中的参数。
步骤406,将目标文本内容通过动态代理对象调用至内容回调接口。
可选地,该动态代理对象用于在调用过程中对目标文本内容进行截获。
可选地,当目标应用程序的内核提取得到该目标文本内容后,将该目标文本内容发送至内容回调接口进行调用。
示意性的,当需要将目标文本内容主动发送至操作***时,则通过该内容回调接口将该目标文本内容主动发送至操作***;当需要对该目标文本内容在目标应用程序中进行内部调用时,则通过该内容回调接口对该目标文本内容进行内部调用;当操作***通过反射调用的方式从内核提取得到目标文本内容时,则通过内容回调接口将该目标文本内容返回至操作***,即,无论何种调用情况,该目标文本内容都需要通过内容回调接口进行调用。
而由于目标文本内容发送至内容回调接口需要通过动态代理对象,即该动态代理对象在调用的过程中能够先对目标文本内容进行截获,再将该目标文本内容转发至内容调用接口,而动态代理对象在截获该目标文本内容后,将该目标文本内容发送至操作***。
可选地,操作***获取该目标文本内容后,可以对该目标文本内容进行进一步操作,如:对该目标文本内容进行搜索、对该目标文本内容按预设分词规律进行分词操作等。
值得注意的是,上述内容还可以替代实现为图像内容、音频内容、视频内容等。
综上所述,本实施例提供的内容获取方法,通过设置动态代理对象,目标文本内容需要通过动态代理对象转发至内容回调接口,也即可以通过动态代理对象对目标文本内容进行截获,避免了由于OCR识别导致的计算量过大,削弱***性能的问题,同时也避免了OCR识别存在识别错误的问题。
本实施例提供的内容获取方法,通过反射调用的方式对目标文本内容进行提取,即无论该目标文本内容在目标应用程序中是否是被隐藏的,都可以被提取得到,避免了由于目标应用程序的内核不开放提取目标文本内容的接口而导致目标文本内容不可提取的问题。
图5是本公开一个示例性实施例提供的内容获取装置,应用于终端的操作***中,该装置包括:接收模块51、确定模块52、设置模块53以及截获模块54;
接收模块51,被配置为接收内容获取信号,所述内容获取信号被配置为对目标应用程序中的目标内容进行获取;
确定模块52,被配置为确定与所述目标内容对应的内容回调接口,所述内容回调接口被配置为对所述目标应用程序中的所述目标内容进行调用;
设置模块53,被配置为根据所述内容回调接口设置动态代理对象,所述动态代理对象被配置为将所述目标应用程序中被调用的所述目标内容转发至所述内容回调接口;
截获模块54,被配置为当所述目标内容被所述操作***调用时,通过所述动态代理对象截获所述目标内容。
在一个可选的实施例中,所述截获模块54,包括:
确定子模块,被配置为确定所述目标应用程序中与所述目标内容对应的内容显示控件,所述内容显示控件被配置为显示所述目标内容;
提取子模块,被配置为通过所述内容显示控件提取所述目标内容;
调用子模块,被配置为将所述目标内容通过所述动态代理对象调用至所述内容回调接口,所述动态代理对象被配置为在调用过程中对所述目标内容进行截获。
在一个可选的实施例中,所述目标应用程序为第三方浏览器应用程序;
所述提取子模块,还被配置为通过所述第三方浏览器应用程序的第三方内核从所述内容显示控件提取所述目标内容。
在一个可选的实施例中,所述目标内容为目标网页中的内容;
所述提取子模块,还被配置为反射调用所述内容显示控件对应的脚本执行装置,向所述目标网页注入内容提取脚本,所述内容提取脚本被配置为对所述目标内容进行提取;
所述提取子模块,还被配置为通过所述第三方内核执行所述内容提取脚本,提取得到所述目标内容。
在一个可选的实施例中,所述确定模块52,还被配置为通过钩子技术对所述目标内容对应的内容回调接口进行钩取
图6是根据另一示例性实施例示出的一种终端的结构框图。例如,该终端600可以是手机、平板电脑、台式电脑、膝上笔记本电脑中的至少一种。
参照图6,该终端600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制终端600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器618来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持该终端600的操作。这些数据的示例包括用于在终端600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为终端600的各种组件提供电力。电源组件606可以包括电源管理***,一个或多个电源,及其他与为终端600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述终端600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当终端600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当终端600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件602和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为终端600提供各个方面的状态评估。例如,传感器组件614可以检测到终端600的打开/关闭状态,组件的相对定位,例如所述组件为终端600的显示器和小键盘,传感器组件614还可以检测终端600或终端600一个组件的位置改变,用户与终端600接触的存在或不存在,终端600方位或加速/减速和终端600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于终端600和其他设备之间有线或无线方式的通信。终端600可以接入基于通信标准的无线网络,如Wi-Fi,2G、3G或4G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由终端600的处理器618执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端600的处理器执行时,使得终端600能够执行上述方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种内容获取方法,其特征在于,应用于终端的操作***中,所述方法包括:
接收内容获取信号,所述内容获取信号用于对目标应用程序中的目标内容进行获取;
确定与所述目标内容对应的内容回调接口,所述内容回调接口用于对所述目标应用程序中的所述目标内容进行调用;
根据所述内容回调接口设置动态代理对象,所述动态代理对象用于将所述目标应用程序中被调用的所述目标内容转发至所述内容回调接口;
当所述目标内容被所述操作***调用时,通过所述动态代理对象截获所述目标内容。
2.根据权利要求1所述的方法,其特征在于,所述当所述目标内容被所述操作***调用时,通过所述动态代理对象截获所述目标内容,包括:
确定所述目标应用程序中与所述目标内容对应的内容显示控件,所述内容显示控件用于显示所述目标内容;
通过所述内容显示控件提取所述目标内容;
将所述目标内容通过所述动态代理对象调用至所述内容回调接口,所述动态代理对象用于在调用过程中对所述目标内容进行截获。
3.根据权利要求2所述的方法,其特征在于,所述目标应用程序为第三方浏览器应用程序;
所述通过所述内容显示控件提取所述目标内容,包括:
通过所述第三方浏览器应用程序的第三方内核从所述内容显示控件提取所述目标内容。
4.根据权利要求3所述的方法,其特征在于,所述目标内容为目标网页中的内容;
所述通过所述第三方浏览器应用程序的第三方内核根据所述内容显示控件提取所述目标内容,包括:
反射调用所述内容显示控件对应的脚本执行方法,向所述目标网页注入内容提取脚本,所述内容提取脚本用于对所述目标内容进行提取;
通过所述第三方内核执行所述内容提取脚本,提取得到所述目标内容。
5.根据权利要求1至4任一所述的方法,其特征在于,所述确定与目标内容对应的内容回调接口,包括:
通过钩子技术对所述目标内容对应的内容回调接口进行钩取。
6.一种内容获取装置,其特征在于,应用于终端的操作***中,所述装置包括:
接收模块,被配置为接收内容获取信号,所述内容获取信号被配置为对目标应用程序中的目标内容进行获取;
确定模块,被配置为确定与所述目标内容对应的内容回调接口,所述内容回调接口被配置为对所述目标应用程序中的所述目标内容进行调用;
设置模块,被配置为根据所述内容回调接口设置动态代理对象,所述动态代理对象被配置为将所述目标应用程序中被调用的所述目标内容转发至所述内容回调接口;
截获模块,被配置为当所述目标内容被所述操作***调用时,通过所述动态代理对象截获所述目标内容。
7.根据权利要求6所述的装置,其特征在于,所述截获模块,包括:
确定子模块,被配置为确定所述目标应用程序中与所述目标内容对应的内容显示控件,所述内容显示控件被配置为显示所述目标内容;
提取子模块,被配置为通过所述内容显示控件提取所述目标内容;
调用子模块,被配置为将所述目标内容通过所述动态代理对象调用至所述内容回调接口,所述动态代理对象被配置为在调用过程中对所述目标内容进行截获。
8.根据权利要求7所述的装置,其特征在于,所述目标应用程序为第三方浏览器应用程序;
所述提取子模块,还被配置为通过所述第三方浏览器应用程序的第三方内核从所述内容显示控件提取所述目标内容。
9.根据权利要求8所述的装置,其特征在于,所述目标内容为目标网页中的内容;
所述提取子模块,还被配置为反射调用所述内容显示控件对应的脚本执行装置,向所述目标网页注入内容提取脚本,所述内容提取脚本被配置为对所述目标内容进行提取;
所述提取子模块,还被配置为通过所述第三方内核执行所述内容提取脚本,提取得到所述目标内容。
10.根据权利要求6至9任一所述的装置,其特征在于,所述确定模块,还被配置为通过钩子技术对所述目标内容对应的内容回调接口进行钩取。
11.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至5任一所述的内容提取方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至5任一所述的内容提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810525031.7A CN108830268A (zh) | 2018-05-28 | 2018-05-28 | 内容获取方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810525031.7A CN108830268A (zh) | 2018-05-28 | 2018-05-28 | 内容获取方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108830268A true CN108830268A (zh) | 2018-11-16 |
Family
ID=64146405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810525031.7A Pending CN108830268A (zh) | 2018-05-28 | 2018-05-28 | 内容获取方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108830268A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147334A (zh) * | 2019-05-08 | 2019-08-20 | 北京百度网讯科技有限公司 | 一种编辑内容的存储方法及终端 |
CN114816558A (zh) * | 2022-03-07 | 2022-07-29 | 深圳开源互联网安全技术有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160301774A1 (en) * | 2015-04-09 | 2016-10-13 | Microscan Systems, Inc. | Web enabled interface for an embedded server |
CN106502703A (zh) * | 2016-10-27 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种函数调用方法和装置 |
CN107220083A (zh) * | 2017-05-22 | 2017-09-29 | 韩皓 | 一种安卓***中免安装运行应用程序的方法和*** |
-
2018
- 2018-05-28 CN CN201810525031.7A patent/CN108830268A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160301774A1 (en) * | 2015-04-09 | 2016-10-13 | Microscan Systems, Inc. | Web enabled interface for an embedded server |
CN106502703A (zh) * | 2016-10-27 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种函数调用方法和装置 |
CN107220083A (zh) * | 2017-05-22 | 2017-09-29 | 韩皓 | 一种安卓***中免安装运行应用程序的方法和*** |
Non-Patent Citations (1)
Title |
---|
YYANJUN: "《Android中webview填坑系列——向webview注入本地js文件》", 《HTTPS://BLOG.CSDN.NET/YYANJUN/ARTICLE/DETAILS/80353766》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147334A (zh) * | 2019-05-08 | 2019-08-20 | 北京百度网讯科技有限公司 | 一种编辑内容的存储方法及终端 |
CN114816558A (zh) * | 2022-03-07 | 2022-07-29 | 深圳开源互联网安全技术有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
CN114816558B (zh) * | 2022-03-07 | 2023-06-30 | 深圳市九州安域科技有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022163060A (ja) | 通知処理方法、電子デバイス、およびプログラム | |
CN106055246B (zh) | 一种移动终端及其操作方法 | |
US9553974B2 (en) | Media/voice binding protocol and related user interfaces | |
CN107066172B (zh) | 移动终端的文件传输方法及装置 | |
US11204681B2 (en) | Program orchestration method and electronic device | |
KR101962774B1 (ko) | 애플리케이션과 연관된 신규 메시지를 처리하기 위한 방법 및 장치 | |
CN109600303B (zh) | 内容分享方法、装置及存储介质 | |
EP3561692A1 (en) | Method and device for displaying web page content | |
CN107391063A (zh) | 信息显示方法、装置及计算机可读存储介质 | |
CN104462296B (zh) | 文件的管理方法、装置及终端 | |
CN106775202B (zh) | 一种信息传输的方法及装置 | |
CN109525652B (zh) | 信息分享方法、装置、设备和存储介质 | |
CN104363205A (zh) | 应用登录方法和装置 | |
CN110945467B (zh) | 一种免打扰方法和终端 | |
CN111427449A (zh) | 界面显示方法、装置及存储介质 | |
CN106537288B (zh) | 控制应用自启动的方法及装置 | |
CN107590137A (zh) | 翻译方法、装置及计算机可读存储介质 | |
CN108830268A (zh) | 内容获取方法、装置、终端及存储介质 | |
CN105468606B (zh) | 网页保存的方法及装置 | |
CN107632835A (zh) | 应用安装方法及装置 | |
CN112667852B (zh) | 基于视频的搜索方法、装置、电子设备及存储介质 | |
CN105159181A (zh) | 智能设备的控制方法和装置 | |
CN107066420A (zh) | 搜索数据记录的电子设备和方法 | |
CN109976549B (zh) | 数据处理方法、装置和机器可读介质 | |
CN106126246B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181116 |