1.一种多网页视图WebView的网页浏览控制方法,其特征在于,包括以下步骤:浏览器加载页面,并在所述页面中注入监控模块,其中,所述浏览器包括多个WebView,且在所述浏览器的应用层中维护有前进后退列表,所述多个WebView共用所述前进后退列表;
所述监控模块检测用户的前进或后退操作,并拦截所述前进或后退操作;以及所述监控模块调用所述前进后退列表根据所述前进或后退操作进行控制。
2.如权利要求1所述的方法,其特征在于,还包括:
所述监控模块监听所述页面中用户的页面点击事件;以及
所述监控模块根据所述页面点击事件对应的页面元素判断启动单个WebView加载或多个WebView加载。
3.如权利要求2所述的方法,其特征在于,所述监控模块根据所述页面点击事件对应的页面元素判断启动单个WebView加载或多个WebView加载进一步包括:所述监控模块获取所述页面点击事件对应的页面元素所在的文件对象模型DOM节点;
所述监控模块获取与所述DOM节点相关的N层DOM父节点和DOM子节点,其中,N为正整数;以及所述监控模块根据N层DOM父节点和DOM子节点判断启动单个WebView加载或多个WebView加载。
4.如权利要求3所述的方法,其特征在于,2≤N≤5。
5.如权利要求3所述的方法,其特征在于,所述监控模块根据N层DOM父节点和DOM子节点判断启动单个WebView加载或多个WebView加载进一步包括:所述监控模块判断所述N层DOM父节点和DOM子节点中是否存在标签以及是否含有href属性;
如果判断满足所述预设条件,则启动单个WebView加载,否则启动多个WebView加载。
6.如权利要求5所述的方法,其特征在于,所述预设条件为以下条件中的任一条:以javascript开头、以#号开头、undefined和null。
7.如权利要求1-6任一项所述的方法,其特征在于,其中,所述前进后退列表包括多个前进后退表项,每个所述前进后退表项包括页面的地址信息、使用加载所用的WebView以及所述页面在所述WebView中前进后退列表中的位置。
8.如权利要求1-7任一项所述的方法,其特征在于,还包括:在页面开始加载的回调接口onPageStarted中增加新的前进后退项,并将所述页面在对应WebView本身前进后退列表里的位置设为所述WebView当前页面位置的下一位;
在开始加载页面资源的回调接口onLoadResource中增加新的前进后退项,并将所述页面在对应WebView本身前进后退列表里的位置设为所述WebView当前页面的位置,其中,所述页面的Url为对应WebView当前页面的Url;
在页面结束加载的回调接口onPageFinished中增加新的前进后退项,并将所述页面在对应WebView本身前进后退列表里的位置设为所述WebView当前页面的位置。
9.如权利要求8所述的方法,其特征在于,还包括:
更新所述浏览器的应用层中的前进后退列表。
10.如权利要求1所述的方法,其特征在于,所述监控模块调用所述前进后退列表根据所述前进或后退操作进行控制进一步包括:根据所述前进后退列表获取所述前进后退列表中的当前前进后退表项以及目标前进后退表项;以及对所述当前前进后退表项和目标前进后退表项进行校验,并根据校验结果进行控制。
11.如权利要求1所述的方法,其特征在于,还包括:
创建并维护WebView池,其中,当所述WebView池中WebView的个数小于第一预设数值时,则创建至少一个WebView。
12.如权利要求1所述的方法,其特征在于,当所述WebView池中WebView的个数大于第二预设数值时,则对所述WebView池中至少部分的WebView进行回收。
13.如权利要求12所述的方法,其特征在于,根据页面类型和窗口类型对所述WebView池中至少部分的WebView进行回收。
14.如权利要求13所述的方法,其特征在于,
对于单窗口,如果当前页面为大页面,则销毁该窗口对应的个WebView;
对于单窗口,如果当前页面为小页面,则销毁该窗口对应的个WebView;
对于多窗口,如果当前页面为大页面,则销毁个WebView;以及对于多窗口,如果当前页面为小页面,则销毁个WebView。
15.一种浏览器,其特征在于,包括
多个WebView;
前进后退列表维护模块,用于在所述浏览器的应用层中维护前进后退列表,其中,所述多个WebView共用所述前进后退列表;
加载模块,用于加载页面,并在所述页面中注入监控模块;
所述监控模块,用于检测用户的前进或后退操作,并拦截所述前进或后退操作,以及调用所述前进后退列表根据所述前进或后退操作进行控制。
16.如权利要求15所述的浏览器,其特征在于,所述监控模块,还用于监听所述页面中用户的页面点击事件,并根据所述页面点击事件对应的页面元素判断启动单个WebView加载或多个WebView加载。
17.如权利要求16所述的浏览器,其特征在于,所述监控模块获取所述页面点击事件对应的页面元素所在的文件对象模型DOM节点,并获取与所述DOM节点相关的N层DOM父节点和DOM子节点,其中,N为正整数,以及根据N层DOM父节点和DOM子节点判断启动单个WebView加载或多个WebView加载。
18.如权利要求17所述的浏览器,其特征在于,2≤N≤5。
19.如权利要求17所述的浏览器,其特征在于,所述监控模块在判断所述N层DOM父节点和DOM子节点中存在标签且含有href属性时,进一步判断所述href属性值是否满足预设条件,且在判断满足所述预设条件之后启动单个WebView加载,否则启动多个WebView加载。
20.如权利要求19所述的浏览器,其特征在于,所述预设条件为以下条件中的任一条:以javascript开头、以#号开头、undefined和null。
21.如权利要求15所述的浏览器,其特征在于,其中,所述前进后退列表包括多个前进后退表项,每个所述前进后退表项包括页面的地址信息、使用加载所用的WebView以及所述页面在所述WebView中前进后退列表中的位置。
22.如权利要求15所述的浏览器,其特征在于,所述前进后退列表维护模块还用于:在页面开始加载的回调接口onPageStarted中增加新的前进后退项,并将所述页面在对应WebView本身前进后退列表里的位置设为所述WebView当前页面位置的下一位;
在开始加载页面资源的回调接口onLoadResource中增加新的前进后退项,并将所述页面在对应WebView本身前进后退列表里的位置设为所述WebView当前页面的位置,其中,所述页面的Url为对应WebView当前页面的Url;
在页面结束加载的回调接口onPageFinished中增加新的前进后退项,并将所述页面在对应WebView本身前进后退列表里的位置设为所述WebView当前页面的位置。
23.如权利要求22所述的浏览器,其特征在于,所述前进后退列表维护模块还用于更新所述浏览器的应用层中的前进后退列表。
24.如权利要求15所述的浏览器,其特征在于,所述监控模块还用于根据所述前进后退列表获取所述前进后退列表中的当前前进后退表项以及目标前进后退表项,并对所述当前前进后退表项和目标前进后退表项进行校验。
25.如权利要求15所述的浏览器,其特征在于,还包括:
WebView池维护模块,用于创建并维护WebView池,其中,当所述WebView池中WebView的个数小于第一预设数值时,则创建至少一个WebView。
26.如权利要求25所述的浏览器,其特征在于,当所述WebView池中WebView的个数大于第二预设数值时,所述WebView池维护模块对所述WebView池中至少部分的WebView进行回收。
27.如权利要求26所述的浏览器,其特征在于,所述WebView池维护模块根据页面类型和窗口类型对所述WebView池中至少部分的WebView进行回收。
28.如权利要求26所述的浏览器,其特征在于,
对于单窗口,如果当前页面为大页面,则所述WebView池维护模块销毁该窗口对应的个WebView;
对于单窗口,如果当前页面为小页面,则所述WebView池维护模块销毁该窗口对应的个WebView;
对于多窗口,如果当前页面为大页面,则所述WebView池维护模块销毁个WebView;以及对于多窗口,如果当前页面为小页面,则所述WebView池维护模块销毁个WebView。