Android系统中获取网页内容的方法及装置的制造方法

文档序号:9489450阅读:393来源:国知局
Android系统中获取网页内容的方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种Android系统中获取网页内容的方法及
目.ο
【背景技术】
[0002]安卓Android系统是一种开源的移动设备操作系统,在智能手机、平板电脑及智能电视等设备中得到了广泛应用。在Android系统中,本地应用程序呈现网页,如浏览器呈现网页时需要通过网络视图WebView组件实现。Android系统中,可以使用apache 提供的 org.apache, http, client.HttpClient 类或者 Java SE 提供的 java.net.HttpURLConnect1n 类访问相同的统一资源定位器(Uniform Resoure Locator, URL)获得网页内容。实际上,本地应用程序解析并显示网页内容时,会涉及到JSP动态网页处理、JS异步加载技术、cookie生成与读取、用户登陆验证、UserAgent设置等处理过程,通过上述的两个类获得的网页内容经常不相同,无法准确获取网页内容。
[0003]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

【发明内容】

[0004]本发明的主要目的在于提供一种Android系统中获取网页内容的方法及装置,旨在解决现有技术Android系统无法准确获取网页内容的技术问题。
[0005]为实现上述目的,本发明提供一种Android系统中获取网页内容的方法,所述Android系统中获取网页内容的方法包括以下步骤:
[0006]当接收到网页请求时,在根据所述网页请求加载对应的网页的同时,调用预先添加到类列表中的自定义类来获取所述网页请求对应的网页源码;
[0007]将所述网页源码赋值给预先创建的映射表,其中,所述映射表中网络视图组件与所述网页源码存在映射关系;
[0008]由所述网络视图组件访问所述映射表,在所述网页加载完成时获取所述网页源码,根据所述网页源码获取网页内容。
[0009]优选地,所述调用预先添加到类列表中的自定义类来获取所述网页请求对应的网页源码的步骤包括:
[0010]调用预先修改的完成加载方法,将网页源码作为所述完成加载方法的参数传给所述预先添加到类列表中的自定义类;
[0011]调用所述自定义类,由所述自定义类中的提取所述网页源码的方法获取所述网页源码。
[0012]优选地,所述调用预先添加到类列表中的自定义类来获取所述网页请求对应的网页源码的步骤进一步包括:
[0013]调用预先修改的开始加载方法,将所述开始加载方法的参数置为空。
[0014]优选地,所述由所述网络视图组件访问所述映射表,在所述网页加载完成时获取所述网页源码,根据所述网页源码获取网页内容的步骤包括:
[0015]由所述网络视图组件访问所述映射表;
[0016]当所述网页未加载完成时,所述映射表中对应的网页源码为空,进入等待状态;
[0017]当所述网页加载完成时,所述映射表中对应的网页源码不为空,获取所述网页源码,根据所述网页源码获取网页内容。
[0018]优选地,所述映射表为HashMap映射表。
[0019]此外,为实现上述目的,本发明还提供一种Android系统中获取网页内容的装置,所述Android系统中获取网页内容的装置包括:
[0020]获取模块,用于当接收到网页请求时,在根据所述网页请求加载对应的网页的同时,调用预先添加到类列表中的自定义类来获取所述网页请求对应的网页源码;
[0021]赋值模块,用于将所述网页源码赋值给预先创建的映射表,其中,所述映射表中网络视图组件与所述网页源码存在映射关系;
[0022]访问模块,用于由所述网络视图组件访问所述映射表,在所述网页加载完成时获取所述网页源码,根据所述网页源码获取网页内容。
[0023]优选地,所述获取模块包括:
[0024]第一调用单元,用于调用预先修改的完成加载方法,将网页源码作为所述完成加载方法的参数传给所述预先添加到类列表中的自定义类;
[0025]第二调用单元,用于调用所述自定义类,由所述自定义类中的提取所述网页源码的方法获取所述网页源码。
[0026]优选地,所述获取模块进一步包括:
[0027]第三调用单元,用于调用预先修改的开始加载方法,将所述开始加载方法的参数置为空。
[0028]优选地,所述访问模块包括:
[0029]访问单元,用于由所述网络视图组件访问所述映射表;
[0030]等待单元,用于当所述网页未加载完成时,所述映射表中对应的网页源码为空,进入等待状态;
[0031]获取单元,用于当所述网页加载完成时,所述映射表中对应的网页源码不为空,获取所述网页源码,根据所述网页源码获取网页内容。
[0032]优选地,所述映射表为HashMap映射表。
[0033]本发明涉及的一种Android系统中获取网页内容的方法及装置,在Android系统中,在接收到网页请求时,调用预先添加到类列表中的自定义类来获取网页源码,然后将网页源码赋值给预先创建的映射表,这样,网络视图组件就可以直接通过访问映射表并获取所述网页源码,由于是从网页加载完成时对应的网页源码中获取网页内容,因此不会出现获得的网页内容不相同的情况,能够准确快速获得网页内容。
【附图说明】
[0034]图1为本发明Android系统中获取网页内容的方法一实施例的流程示意图;
[0035]图2为图1中网页请求路径的流程示意图;
[0036]图3为图1中双线程异步执彳丁的流程不意图;
[0037]图4为图1中步骤S101的细化流程示意图;
[0038]图5为图1中步骤S103的细化流程示意图;
[0039]图6为本发明Android系统中获取网页内容的装置一实施例的功能模块示意图;
[0040]图7为图6中获取模块的细化功能模块示意图;
[0041]图8为图6中访问模块的细化功能模块示意图。
[0042]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0043]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0044]本发明提供一种Android系统中获取网页内容的方法,参照图1,在一实施例中,该Android系统中获取网页内容的方法包括:
[0045]步骤S101,当接收到网页请求时,在根据所述网页请求加载对应的网页的同时,调用预先添加到类列表中的自定义类来获取所述网页请求对应的网页源码;
[0046]在Android系统中,当本地应用程序(浏览器)呈现网页前发起网页请求,如图2所示,由上层的网络视图组件开始,经WebViewClassic、WebCore、WebCore.EventHub层层调用,在底层的Framework层,调用预先添加到JavaScriptOb jects列表中的自定义类来获取网页请求对应的网页源码。
[0047]本实施例中,对Framework层的android, webkit包进行修改,通过自定义一个JS类,将该JS类添加到类列表中,具体添加到JavaScriptOb jects列表中,然后通过调用该JS类中的方法来获取网页源码。
[0048]步骤S102,将所述网页源码赋值给预先创建的映射表,其中,所述映射表中网络视图组件与所述网页源码存在映射关系;
[0049]本实施例中,当打开一个浏览器时,浏览器上的标签页可以有一个或多个,位于前台的浏览器对应一个活动Activity组件,而每一个标签页对应着一个网络视图组件。本实施例在活动Activity组件中创建一个映射表,建立网络视图组件和网页源码的映射关系。优选地,该映射表为HashMap映射表。
[0050]本实施例中,当通过自定义类获取到网页源码后,将所获取的网页源码赋值给预先创建的映射表,这样,网络视图组件就可以通过访问该映射表获取到网页加载完成时对应的网页源码。
[0051]步骤S103,由所述网络视图组件访问所述映射表,在所述网页加载完成时获取所述网页源码,根据所述网页源码获取网页内容。
[0052]本实施例中,通过自定义类获取网页源码与网络视图组件访问映射表是一个双线程异步执行的过程,如图3所示,当接收到网页请求时,Android系统中开启一个线程调用onPageStart ()方法,网页开始加载,然后调用onPageFinished ()方法及自定义的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1