[发明专利]多WebView的网页浏览控制方法及浏览器有效
申请号: | 201310182541.6 | 申请日: | 2013-05-16 |
公开(公告)号: | CN103246739B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 龚海平 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙)11201 | 代理人: | 宋合成 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | webview 网页 浏览 控制 方法 浏览器 | ||
技术领域
本发明涉及浏览器技术领域,特别涉及一种多WebView的网页浏览控制方法及浏览器。
背景技术
目前,由于单WebView(网页视图)浏览网页过程中,网页前进后退需要重新render(渲染)页面内容,会导致前进后退过程中用户需要等较长时间才能看到完整的页面内容,特别是大PC(个人电脑)页面。对于部分页面,重新render的页面内容可能还会默认从头开始展示,没有记住用户上次浏览的页面位置。因此,使用单WebView浏览页面在用户体验上较差。
UC手机浏览器:在自有内核中实现,全部用C++来开发,安装包太大。
遨游手机浏览器:在应用层实现。没有拦截页面内浏览操作,页面内无法正常操作前进后退。没有区分多View(视图)和单View打开,特定页面使用多View打开会出问题。
天天手机浏览器:和遨游手机浏览器一样,在应用层实现。没有拦截页面内浏览操作,页面内无法正常操作前进后退。没有区分多View和单View打开,特定页面使用多View打开会出问题。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的一个目的在于提出一种多WebView的网页浏览控制方法。该方法可提高网页浏览过程中前进后退速度。
本发明的另一个目的在于提出一种浏览器。
为达到上述目的,本发明第一方面的实施例公开了一种多WebView的网页浏览控制方法,包括以下步骤:浏览器加载页面,并在所述页面中注入监控模块,其中,所述浏览器包括多个WebView,且在所述浏览器的应用层中维护有前进后退列表,所述多个WebView共用所述前进后退列表;所述监控模块检测用户的前进或后退操作,并拦截所述前进或后退操作;以及所述监控模块调用所述前进后退列表根据所述前进或后退操作进行控。
根据本发明实施例的多WebView的网页浏览控制方法,全部在应用层实现,无需修改webkit(浏览器引擎)内核,无需额外的webkit.so库(浏览器引擎库),既可减少客户端安装包大小,同时可兼容百度手机浏览器的系统内核和自有内核。另外,该方法只依赖底层的接口,应用层维护一套多WebView的前进后退列表,该列表与底层WebView数据保持一致,操作顺序也与用户浏览操作保持一致,并且通过一套前进后退列表维护策略对前进后退列表进行维护,从而保持与底层WebView数据的一致,并可通过监控模块控制其操作顺序与用户浏览操作一致。本发明实施例的方法采用多WebView浏览网页,提高网页浏览过程中前进后退速度并可以记住浏览历史的网页的位置。
另外,根据本发明上述实施例的多WebView的网页浏览控制方法还可以具有如下附加的技术特征:
在一些示例中,还包括:所述监控模块监听所述页面中用户的页面点击事件;以及所述监控模块根据所述页面点击事件对应的页面元素判断启动单个WebView加载或多个WebView加载。
在一些示例中,所述监控模块根据所述页面点击事件对应的页面元素判断启动单个WebView加载或多个WebView加载进一步包括:所述监控模块获取所述页面点击事件对应的页面元素所在的文件对象模型DOM(文件对象模型)节点;所述监控模块获取与所述DOM节点相关的N层DOM父节点和DOM子节点,其中,N为正整数;以及所述监控模块根据N层DOM父节点和DOM子节点判断启动单个WebView加载或多个WebView加载。
在一些示例中,2≤N≤5。
在一些示例中,所述监控模块根据N层DOM父节点和DOM子节点判断启动单个WebView加载或多个WebView加载进一步包括:所述监控模块判断所述N层DOM父节点和DOM子节点中是否存在标签<a>(锚)以及是否含有href(超文本引用)属性;如果判断存在标签<a>且含有href属性,则进一步判断所述href属性值是否满足预设条件;如果判断满足所述预设条件,则启动单个WebView加载,否则启动多个WebView加载。
在一些示例中,所述预设条件为以下条件中的任一条:以javascript(基于对象和事件驱动并具有相对安全性的客户端脚本语言)开头、以#号开头、undefined和null。
在一些示例中,其中,所述前进后退列表包括多个前进后退表项,每个所述前进后退表项包括页面的地址信息、使用加载所用的WebView以及所述页面在所述WebView中前进后退列表中的位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310182541.6/2.html,转载请声明来源钻瓜专利网。