应用程序内嵌页面处理方法、浏览器、设备和存储介质与流程

文档序号:18553164发布日期:2019-08-30 22:15阅读:127来源:国知局
应用程序内嵌页面处理方法、浏览器、设备和存储介质与流程

本发明涉及通信技术领域,尤其涉及一种应用程序内嵌页面处理方法、浏览器、计算机设备和存储介质。



背景技术:

目前,产品的落地形态是window应用,window应用里面内嵌的html5,使得window应用相当于提供了一个容器,所有的交互、样式、请求都是html5完成。window容器和html5之间有很多接口,例如,主要是以下几类:1)容器给html5传递数据;2)html5控制容器的窗口的呈现;3)html5控制容器的交互行为,这样,可以使得html5通过window容器即可实现在浏览器上正常运行。可以看出,html5和window容器之间有一定程度的耦合,html5脱离window容器便无法在浏览器上正常运行。因此,如何在不借助window容器的情况下能够使得html5直接在浏览器上运行,已经成为亟待解决的问题。



技术实现要素:

本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的第一个目的在于提出一种应用程序内嵌页面处理方法,该方法通过在浏览器上安装模拟插件以模拟window窗口的所有接口以及执行逻辑,可以实现应用程序内嵌页面与浏览器直接交互。

本发明的第二个目的在于提出一种浏览器。

本发明的第三个目的在于提出一种计算机设备。

本发明的第四个目的在于提出一种计算机可读存储介质。

为达到上述目的,本发明第一方面实施例提出的应用程序内嵌页面处理方法,所述方法应用于浏览器,所述浏览器安装有容器模拟插件,所述方法包括:在应用程序内嵌页面被打开时,所述容器模拟插件向内嵌页面注入脚本代码,其中,所述脚本代码用于模拟window容器的接口和执行逻辑;在确定所述内嵌页面调用所述脚本代码中的接口时,所述浏览器获取所述内嵌页面调用所述接口时传递的参数;所述浏览器根据所述参数的类型从所述脚本代码中确定出对应的执行逻辑,并根据所述执行逻辑在所述浏览器上进行相应操作。

根据本发明实施例的应用程序内嵌页面处理方法,在应用程序内嵌页面被打开时,容器模拟插件向内嵌页面注入脚本代码,其中,脚本代码用于模拟window容器的接口和执行逻辑,之后在确定内嵌页面调用脚本代码中的接口时,浏览器获取内嵌页面调用接口时传递的参数,然后浏览器根据参数的类型从脚本代码中确定出对应的执行逻辑,并根据执行逻辑在所述浏览器上进行相应操作。该方法通过在浏览器上安装模拟插件以模拟window窗口的所有接口以及执行逻辑,实现了内嵌页面与浏览器直接交互,并且此内嵌页面代码既可以在浏览器上正常运行也可以在window容器里正常运行,使得内嵌页面代码的开发效率大大提升。

为达到上述目的,本发明第二方面实施例提出的浏览器,包括:容器模拟插件,用于在应用程序内嵌页面被打开时,向内嵌页面注入脚本代码,其中,所述脚本代码用于模拟window容器的接口和执行逻辑;参数获取模块,用于在确定所述内嵌页面调用所述脚本代码中的接口时,所述浏览器获取所述内嵌页面调用所述接口时传递的参数;处理模块,用于在确定所述内嵌页面调用所述脚本代码中的接口时,所述浏览器获取所述内嵌页面调用所述接口时传递的参数;

根据本发明实施例的浏览器,在应用程序内嵌5页面被打开时,容器模拟插件向内嵌页面注入脚本代码,其中,脚本代码用于模拟window容器的接口和执行逻辑,之后在确定内嵌页面调用脚本代码中的接口时,浏览器获取内嵌页面调用接口时传递的参数,然后浏览器根据参数的类型从脚本代码中确定出对应的执行逻辑,并根据执行逻辑在所述浏览器上进行相应操作。由此,通过在浏览器上安装模拟插件以模拟window窗口的所有接口以及执行逻辑,实现了内嵌页面与浏览器直接交互,并且此内嵌页面代码既可以在浏览器上正常运行也可以在window容器里正常运行,使得内嵌页面代码的开发效率大大提升。

为达到上述目的,本发明第三方面实施例提出的计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本发明第一方面实施例所述的应用程序内嵌页面处理方法。

为达到上述目的,本发明第四方面实施例提出的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明第一方面实施例所述的应用程序内嵌页面处理方法。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本发明一个实施例的应用程序内嵌页面处理方法的流程图。

图2为现有技术中对html5页面进行处理的示例图。

图3为根据本发明实施例对html5页面进行处理的示例图。

图4是根据本发明一个具体实施例的应用程序内嵌页面处理方法的流程图。

图5是根据本发明一个实施例的浏览器的结构示意图。

图6是根据本发明一个实施例的计算机设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的应用程序内嵌html5页面处理方法、浏览器、计算机可读存储介质。

图1是根据本发明一个实施例的应用程序内嵌页面处理方法的流程图。需要说明的是,本发明实施例的应用程序内嵌页面处理方法可应用于本发明实施例的浏览器,该浏览器可被配置于计算机设备上。需要说明的是,本发明实施例的浏览器安装有容器模拟插件,该容器模拟插件可模拟window容器的所有接口以及执行逻辑。

如图1所示,该应用程序内嵌页面处理方法可以包括:

s110,在应用程序内嵌页面被打开时,容器模拟插件向内嵌页面注入脚本代码,其中,脚本代码用于模拟window容器的接口和执行逻辑。

需要说明的是,在本发明的实施例中,应用程序内嵌页面可理解为是内嵌在应用程序中的页面,例如,内嵌在某个应用程序内的详细介绍页面等。该应用程序内嵌页面不限定为采用超文本标记语言html5语言开发的网页页面,还可以采用其他类型页面。

可选地,在应用程序内嵌页面被打开时,容器模拟插件可基于浏览器插件的contentscripts,向内嵌页面注入脚本代码。

也就是说,在本发明的实施例中,可预先开发一个容器模拟插件,并将该容器模拟插件安装于浏览器上后,在检测到应用程序内嵌页面被打开时,该容器模拟插件可自动给内嵌页面注入一段script代码,该代码可用于模拟window容器的接口和执行逻辑。

s120,在确定内嵌页面调用脚本代码中的接口时,浏览器获取内嵌页面调用接口时传递的参数。

也就是说,浏览器在确定内嵌页面调用所述脚本代码中的接口时,可获取该内嵌页面调用接口时所传递的参数。其中,在本发明的实施例中,所述参数包括但不仅限于携带打开新窗口的参数、携带http请求参数、携带调用其它插件或接口参数等。

举例而言,在用户点击某个“大型活动介绍页面”(其中,该页面为html5页面)时,容器模拟插件可先向html5页面注入脚本代码,以使该脚本代码来模拟window容器的接口和执行逻辑;浏览器在确定html5页面调用该脚本代码中的接口“activitysearch.do”接口时,可获取该html5页面调用该接口时所传递的参数,例如,该参数可为携带打开新窗口的参数。

s130,浏览器根据参数的类型从脚本代码中确定出对应的执行逻辑,并根据执行逻辑在浏览器上进行相应操作。

可选地,浏览器可确定参数的类型,并根据该参数类型从脚本代码中确定出对应的执行逻辑,进而可根据该执行逻辑在浏览器上进行相应操作。例如,当参数的类型为打开新窗口类型时,从脚本代码中确定出与打开新窗口类型对应的第一执行逻辑,并根据第一执行逻辑在浏览器上打开新窗口;当参数的类型为http请求类型时,从脚本代码中确定出与http请求类型对应的第二执行逻辑,并根据第二执行逻辑进行服务器与内嵌页面之间的数据交互;当参数的类型为调用其他插件或其他接口类型时,从脚本代码中确定出与调用其他插件或其他接口类型对应的第三执行逻辑,并根据第三执行逻辑在浏览器上调用其他插件或其他接口。

也就是说,浏览器获取到内嵌页面调用接口时所传递的参数后,可确定参数的类型,然后根据参数的类型从脚本代码中确定出与参数类型对应的执行逻辑,并根据执行逻辑执行操作,从而将现有技术中的window容器的行为交给浏览器来实现,包括打开新窗口、定位特定的锚点以及向指定的服务器发送请求等。

下面将给出三种示例以便理解:

在本发明的一个实施例中,以参数的类型为打开新窗口类型为例,可选地,当浏览器确定参数类型为打开新窗口类型时,从脚本代码中确定出与打开新窗口类型对应的第一执行逻辑,根据第一执行逻辑确定参数中是否存在有锚点,若是,则在浏览器上打开新窗口,并在新窗口中根据锚点定位到特定位置;若否,则在浏览器上直接打开新窗口。

举例而言,打开“新闻a”网页,点击“新闻a”网页中“新闻a1”的链接,其中,url链接为:http://文件路径/index.html#foot,浏览器可获取“新闻a1”链接中的参数并确定参数类型为打开新窗口类型,浏览器可从脚本代码中确定出与打开新窗口类型对应的第一执行逻辑为“打开新窗口”,根据第一执行逻辑确定参数中是否存在有锚点,若是,则在浏览器上打开新窗口,并在新窗口中根据锚点定位到特定位置,如在该新窗口中呈现“新闻a1”页面,并根据锚点直接在该“新闻a1”页面上定位到对应位置;若否,则在浏览器上直接打开新窗口,如在该新窗口中呈现“新闻a1”页面。

在本发明的另一个实施例中,以参数的类型为http请求类型为例,可选地,当浏览器确定参数类型为http请求类型时,从脚本代码中确定出与http请求类型对应的第二执行逻辑,根据第二执行逻辑和参数向服务器发送异步http请求,在确定异步http请求发送成功时,触发预先定义的通知事件,其中,通知事件用于指示在服务器返回针对异步http请求的数据时,将返回的数据作为参数传入至通知事件中,监听通知事件,根据通知事件中的参数获取服务器返回的数据,并将服务器返回的数据发送给内嵌页面。

也就是说,当浏览器确定参数类型为http请求类型时,从脚本代码中确定出与http请求类型对应的第二执行逻辑,根据第二执行逻辑和参数向服务器发送异步http请求,在异步请求成功后主动触发通知事件,例如,通知事件名为“my-event”,并监听该事件,之后将结果作为参数发送给内嵌页面,浏览器与内嵌页面直接可进行交互。由此,通过异步请求可以避免长时间频繁的占用浏览器线程的问题,提高浏览器性能。

在本发明的又一个实施例中,以参数的类型为调用其他插件或其他接口类型为例,可选地,当浏览器确定参数类型为调用其他插件或其他接口类型时,从脚本代码中确定出与调用其他插件或其他接口类型对应的第三执行逻辑,并根据第三执行逻辑在浏览器上调用其他插件或其他接口。

举例而言,打开“购物a”网页,点击“购物a”网页中“商品a1”的链接,其中,链接为:http://文件路径/index.调用插件参数,浏览器可获取“商品a1”链接中的参数并确定参数类型为调用其他插件类型,从脚本代码中确定出与打开新窗口类型对应的第一执行逻辑为“调用插件”,根据第三执行逻辑在浏览器上调用其它插件。

为了方便本领域技术人员更加清楚地了解本发明与现有技术的区别,下面分别介绍下现有技术中对html5页面的处理方法、以及本发明实施例对html5页面的处理方法。

图2为现有技术中对应用程序内嵌html5页面进行处理的示例图。如图2所示,现有技术中,将内嵌html5页面嵌入到window容器中,该window容器为内嵌html5页面提供接口和执行逻辑。在内嵌html5页面调用window容器提供的接口时,内嵌html5页面向该window容器传递相关参数,window容器根据参数类型进行不同的操作。可以看出,所有的交互、样式、请求都是内嵌html5页面在window容器中完成;而且,window容器内嵌html5页面,其在开发时要同时开发window容器和html5页面,降低开发效率,并且后期代码维护成本也会比较高。

图3为根据本发明实施例对应用程序内嵌html5页面进行处理的示例图。如图3所示,本发明实施例通过在浏览器上安装在容器模拟插件,在内嵌html5页面被打开时,通过该容器模拟插件向内嵌html5页面注入脚本代码,其中,该脚本代码可用于用于模拟window容器的接口和执行逻辑。浏览器在确定内嵌html5页面调用所述脚本代码中的接口时,可获取该内嵌html5页面调用接口时所传递的参数;其中,在本发明的实施例中,所述参数包括但不仅限于携带打开新窗口的参数、携带http请求参数、携带调用其它插件或接口参数等。浏览器获取到内嵌html5页面调用接口时所传递的参数后,可确定参数的类型,然后根据参数的类型从脚本代码中确定出与参数类型对应的执行逻辑,并根据执行逻辑执行操作,从而将现有技术中的window容器的行为交给浏览器来实现,包括打开新窗口、定位特定的锚点以及向指定的服务器发送请求等。可以看出,通过在浏览器上安装模拟插件以模拟window容器的所有接口以及执行逻辑,可以在浏览器上模拟容器的行为,可实现内嵌html5页面与浏览器直接交互,这样便可以在浏览器上开发和调试,提高开发效率,节省后期维护的成本。

举例而言,如图4所示,在应用程序内嵌html5页面被打开时,容器模拟插件向内嵌html5页面注入脚本代码,其中,脚本代码用于模拟window容器的接口和执行逻辑(s410),之后判断确定内嵌html5页面调用脚本代码中的接口是否存在(s420),如果不存在,则抛出异常(s430),如果存在,浏览器获取内嵌html5页面调用接口时传递的参数,并判断该参数类型(s440),如果该参数类型为打开新窗口类型时(s450),判断参数中是否有锚点位置(s460),如果没有,则直接打开新窗口(s470),如果有,打开新窗口并定位到特定位置(s480);如果该参数类型为http请求类型时(s490),判断请求接口需要传的参数是否存在(s500),如果不存在,则抛出异常(s510),如果存在,直接向服务器发送请求(s520),之后判断请求是否发送成功(s530),如果没发送成功,抛出异常(s540),如果发送成功,将服务器返回的数据发送给内嵌html5页面(s550);如果该参数类型为调用其他插件或其他接口类型时(s560),在浏览器上调用其他插件或其他接口(s570)。

根据本发明实施例的应用程序内嵌页面处理方法,在应用程序内嵌页面被打开时,容器模拟插件向内嵌页面注入脚本代码,其中,脚本代码用于模拟window容器的接口和执行逻辑,之后在确定内嵌页面调用脚本代码中的接口时,浏览器获取内嵌页面调用接口时传递的参数,然后浏览器根据参数的类型从脚本代码中确定出对应的执行逻辑,并根据执行逻辑在所述浏览器上进行相应操作。该方法通过在浏览器上安装模拟插件以模拟window容器的所有接口以及执行逻辑,可以在浏览器上模拟容器的行为,实现了内嵌页面与浏览器直接的交互,这样便可以在浏览器上开发和调试;并且,通过将内嵌页面和window容器的开发进行解耦,做到完全隔离,从而实现互不干扰的并行开发,使得该内嵌页面代码既可以在浏览器上正常运行也可以在window容器里正常运行,实现一套内嵌页面代码可在多个平台上运行,可以大大提高开发效率,节省后期维护的成本。

与上述几种实施例提供的应用程序内嵌页面处理方法相对应,本发明的一种实施例还提供一种浏览器,由于本发明实施例提供的浏览器与上述几种实施例提供的应用程序内嵌页面处理方法相对应,因此在应用程序内嵌页面处理方法的实施方式也适用于本实施例提供的浏览器,在本实施例中不再详细描述。图5是根据本发明一个实施例的浏览器的结构示意图。如图5所示,该浏览器包括:容器模拟插件510、参数获取模块520和处理模块530,其中:

容器模拟插件510用于在应用程序内嵌页面被打开时,向内嵌页面注入脚本代码,其中,所述脚本代码用于模拟window容器的接口和执行逻辑。作为一种示例,所述内嵌页面为html5页面。

参数获取模块520用于在确定所述内嵌页面调用所述脚本代码中的接口时,所述浏览器获取所述内嵌页面调用所述接口时传递的参数。

处理模块530用于在确定所述内嵌页面调用所述脚本代码中的接口时,所述浏览器获取所述内嵌页面调用所述接口时传递的参数。

在本发明的一个实施例中,所述处理模块包括:参数类型确定和单元处理单元,其中,参数类型确定单元,用于确定所述参数的类型;处理单元,用于在所述参数的类型为打开新窗口类型时,从所述脚本代码中确定出与所述打开新窗口类型对应的第一执行逻辑,并根据所述第一执行逻辑在所述浏览器上打开新窗口;在所述参数的类型为http请求类型时,从所述脚本代码中确定出与所述http请求类型对应的第二执行逻辑,并根据所述第二执行逻辑进行服务器与所述内嵌页面之间的数据交互;在所述参数的类型为调用其他插件或其他接口类型时,从所述脚本代码中确定出与所述调用其他插件或其他接口类型对应的第三执行逻辑,并根据所述第三执行逻辑在所述浏览器上调用所述其他插件或其他接口。

在本发明的一个实施例中,所述处理单元根据第一执行逻辑在浏览器上打开新窗口的具体实现过程可如下:根据所述第一执行逻辑确定所述参数中是否存在有锚点;若是,则在所述浏览器上打开新窗口,并在所述新窗口中根据所述锚点定位到特定位置;若否,则在所述浏览器上直接打开新窗口。

在本发明的一个实施例中,所述处理单元根据第二执行逻辑进行服务器与内嵌页面之间的数据交互的具体实现过程可如下:根据所述第二执行逻辑和所述参数向所述服务器发送异步http请求;在确定所述异步http请求发送成功时,触发预先定义的通知事件,其中,所述通知事件用于指示在所述服务器返回针对所述异步http请求的数据时,将返回的数据作为参数传入至所述通知事件中;监听所述通知事件,根据所述通知事件中的参数获取所述服务器返回的数据,并将服务器返回的数据发送给所述内嵌页面。

根据本发明实施例的浏览器,在应用程序内嵌页面被打开时,容器模拟插件向内嵌页面注入脚本代码,其中,脚本代码用于模拟window容器的接口和执行逻辑,之后在确定内嵌页面调用脚本代码中的接口时,浏览器获取内嵌页面调用接口时传递的参数,然后浏览器根据参数的类型从脚本代码中确定出对应的执行逻辑,并根据执行逻辑在所述浏览器上进行相应操作。由此,通过在浏览器上安装模拟插件以模拟window容器的所有接口以及执行逻辑,可以在浏览器上模拟容器的行为,实现了内嵌页面与浏览器直接的交互,这样便可以在浏览器上开发和调试;并且,通过将内嵌页面和window容器的开发进行解耦,做到完全隔离,从而实现互不干扰的并行开发,使得该内嵌页面代码既可以在浏览器上正常运行也可以在window容器里正常运行,实现一套内嵌页面代码可在多个平台上运行,可以大大提高开发效率,节省后期维护的成本。

为了实现上述实施例,本发明还提出了一种计算机设备,

图6是根据本发明一个实施例的计算机设备的结构示意图。如图6所示,该计算机设备600可以包括:存储器610、处理器620及存储在存储器610上并可在处理器620上运行的计算机程序630,处理器620执行程序时,实现本发明上述任一项实施例所述的应用程序内嵌页面处理方法。

为了实现上述实施例,本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现本发明上述任一项所述的应用程序内嵌页面处理方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1