CN113986447B - 一种本地应用服务与浏览器的交互方法、装置及存储介质 - Google Patents
一种本地应用服务与浏览器的交互方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113986447B CN113986447B CN202111594232.0A CN202111594232A CN113986447B CN 113986447 B CN113986447 B CN 113986447B CN 202111594232 A CN202111594232 A CN 202111594232A CN 113986447 B CN113986447 B CN 113986447B
- Authority
- CN
- China
- Prior art keywords
- window
- browser
- application service
- local application
- interface
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提出了一种本地应用服务与浏览器的交互方法、装置及存储介质,该方法包括:在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;初始化本地应用服务为对应的浏览器创建一个ClientHost对象;所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将其作为所述浏览器窗口的子窗口;创建一个窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。本发明中避免了浏览器需要与本地应用服务大量交互数据,使得显示流畅。
Description
技术领域
本发明涉及计算机程序设计技术领域,具体涉及一种本地应用服务与浏览器的交互方法、装置及存储介质。
背景技术
现有技术中浏览器显示本地服务的方法有以下两种:1、浏览器的页面调用本地应用服务,本地应用服务只提供服务,浏览器负责展示结果;2、浏览器的页面调用本地应用服务,本地应用服务独立于浏览器之外再弹出一个窗口与用户交互。方法1的缺陷为:当显示的结果要求实时、交互频繁、传递的展现数据较大的情况时,会出现延迟卡顿的情况;方法2的缺陷为:由于本地应用服务界面独立于浏览器应用之外显示,这样和浏览器应用成两个独立的应用,造成用户体验不好、操作不方便、本地服务不能和浏览器应用处理各自擅长的领域。
中国专利申请CN107257372A、CN109947582A属于上面的方法,存在上面的类似的缺陷,中国专利CN106775970B公开了跨进程的窗口操作同步方法,操作方法复杂,且进程之间的操作耗费大量的处理器资源;中国专利申请CN111124556A公开了一种窗口操作的方法及装置,应用于电子设备中,其中所述方法包括:通过本设备安装的本地服务接收本设备已加载的web页面发送的窗口处理请求;依据所述窗口处理请求,对当前显示的预览窗口进行处理,以使被所述预览窗口遮挡的web页面的页面元素正常显示,其中,所述预览窗口由所述本地服务创建。本申请可以通过本地服务来解决web页面元素与预览窗口层级的问题,可以不受限于页面元素相对于预览窗口的大小和位置,适用性强。其是通过本地服务来解决web页面元素与预览窗口层级的问题,不能将本地服务的窗口嵌入到浏览器窗口中,
且现有技术中,无法适应浏览器窗口的变化而将本地应用服务的窗口进行相应的变化,且由于没有清理浏览器调用本地应用服务所占用的内容,导致终端运行性能下降,这是现有技术的缺陷,上述专利(申请)文献都存在同样的缺陷。
发明内容
本发明针对上述现有技术中一个或多个技术缺陷,提出了如下技术方案。
一种本地应用服务与浏览器的交互方法,该方法包括:
实例化步骤,在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;
初始化步骤,初始化本地应用服务为对应的浏览器创建一个ClientHost对象;
创建步骤,所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将所述界面窗口作为浏览器窗口的子窗口;
监控步骤,创建一个窗口监控线程,所述窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。
更进一步地,在所述实例化步骤中,为浏览器封装一个本地应用服务的js对象,实例化所述js对象得到ClientServiceJs对象。
更进一步地,所述参数包括浏览器的类型以及用于显示本地应用服务的界面窗口的子窗口的位置。
更进一步地,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程触发销毁操作以销毁所述本地应用服务界面和ClientHost对象;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,所述窗口监控线程触发销毁操作以销毁ClientHost对象和ClientServiceJs对象;所述窗口监控线程判断所述浏览器窗口是否正在显示,如果是,则判断所述浏览器的位置是否变化,如果变化,则计算所述本地应用服务窗口界面的新位置X3/Y3=浏览器窗口的位置变化后的绝对位置X1/Y1+本地应用服务窗口界面在浏览器窗口的相对位置X2/Y2,计算所述本地应用服务窗口界面的新位置之后,移动并显示本地应用服务界面窗口;在所述窗口监控线程判断所述浏览器窗口不显示时,则隐藏本地应用服务界面窗口。
更进一步地,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程记录在所述浏览器窗口中显示的本地应用服务界面窗口的标识,所述窗口监控线程基于所述标识向所述本地应用服务界面发送销毁指令,并获取ClientHost对象在内存中的进程ID,所述本地应用服务界面基于所述销毁指令进行销毁,所述窗口监控线程基于所述ClientHost对象在内存中的进程ID将所述ClientHost对象销毁;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,记录所述本地应用服务界面窗口对应的浏览器的ID,并获取ClientHost对象在内存中的进程ID,并基于所述浏览器的ID的获取ClientServiceJs对象在内存中的进程ID,所述窗口监控线程基于所述ClientHost对象和ClientServiceJs对象在内存中的进程ID将所述ClientHost对象和ClientServiceJs对象销毁。
本发明还提出了一种本地应用服务与浏览器的交互装置,该装置包括:
实例化单元,在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;
初始化单元,初始化本地应用服务为对应的浏览器创建一个ClientHost对象;
创建单元,所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将所述界面窗口作为所述浏览器窗口的子窗口;
监控单元,创建一个窗口监控线程,所述窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。
更进一步地,在所述实例化单元中,为浏览器封装一个本地应用服务的js对象,实例化所述js对象得到ClientServiceJs对象。
更进一步地,所述参数包括浏览器的类型以及用于显示本地应用服务的界面窗口的子窗口的位置。
更进一步地,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程触发销毁操作以销毁所述本地应用服务界面和ClientHost对象;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,所述窗口监控线程触发销毁操作以销毁ClientHost对象和ClientServiceJs对象;所述窗口监控线程判断所述浏览器窗口是否正在显示,如果是,则判断所述浏览器的位置是否变化,如果变化,则计算所述本地应用服务窗口界面的新位置X3/Y3=浏览器窗口的位置变化后的绝对位置X1/Y1+本地应用服务窗口界面在浏览器窗口的相对位置X2/Y2,计算所述本地应用服务窗口界面的新位置之后,移动并显示本地应用服务界面窗口;在所述窗口监控线程判断所述浏览器窗口不显示时,则隐藏本地应用服务界面窗口。
更进一步地,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程记录在所述浏览器窗口中显示的本地应用服务界面窗口的标识,所述窗口监控线程基于所述标识向所述本地应用服务界面发送销毁指令,并获取ClientHost对象在内存中的进程ID,所述本地应用服务界面基于所述销毁指令进行销毁,所述窗口监控线程基于所述ClientHost对象在内存中的进程ID将所述ClientHost对象销毁;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,记录所述本地应用服务界面窗口对应的浏览器的ID,并获取ClientHost对象在内存中的进程ID,并基于所述浏览器的ID的获取ClientServiceJs对象在内存中的进程ID,所述窗口监控线程基于所述ClientHost对象和ClientServiceJs对象在内存中的进程ID将所述ClientHost对象和ClientServiceJs对象销毁。
本发明还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行上述之任一的方法。
本发明的技术效果在于:本发明的一种本地应用服务与浏览器的交互方法、装置及存储介质,该方法包括:实例化步骤S101,在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;初始化步骤S102,初始化本地应用服务为对应的浏览器创建一个ClientHost对象;创建步骤S103,所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将所述界面窗口作为所述浏览器窗口的子窗口;监控步骤S104,创建一个窗口监控线程,所述窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。本发明中,浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象,进而初始化本地应用服务为对应的浏览器创建一个ClientHost对象,然后通过ClientServiceJs对象将浏览器的参数发送至本地应用服务,本地应用服务通过ClientHost对象基于浏览器的参数创建显示界面窗口,用以显示本地应用的内容,并将该界面窗口作为浏览器的子窗口,即将本地应用显示在浏览器中,通过监控进程实现了窗口的监控,避免了浏览器需要与本地应用服务大量交互数据,使得显示流畅,解决了背景技术的中的缺陷;本发明中,设计了监控线程实时监控浏览器及本地应用服务的状态,在监控到浏览器的窗口位置变化时,通过ClientServiceJs对象将浏览器变化坐标X/Y发送本地应用服务,本地应用服务使用ClientHost对象计算所述本地应用服务窗口界面在所述浏览器的新位置X3/Y3,即实时地将该界面窗口随浏览器的窗口移动,看上去该界面窗口是浏览器窗口的一部分,而不是浏览器窗口移动了,本地应用服务的界面窗口位置无变化,使得用户体验不好,所述窗口监控线程判断所述浏览器窗口不显示时,比如浏览器最小化等,则监控线程触发隐藏命令隐藏本地应用服务界面窗口,从而减少浏览器与本地服务之间的数据交互;本发明提出了监控进程监控到浏览器窗口销毁、本地应用服务界面窗口销毁时如何具体地进行操作,以确保因本地应用服务与浏览器交互在内存中创建的ClientHost对象和ClientServiceJs对象销毁,释放了内存空间,提高了系统的可操作性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是根据本发明的实施例的一种本地应用服务与浏览器的交互方法的流程图。
图2是根据本发明的实施例的一种本地应用服务与浏览器的交互装置的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的一种本地应用服务与浏览器的交互方法,该方法包括:
实例化步骤S101,在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;
初始化步骤S102,初始化本地应用服务为对应的浏览器创建一个ClientHost对象;
创建步骤S103,所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将所述界面窗口作为所述浏览器窗口的子窗口;
监控步骤S104,创建一个窗口监控线程,所述窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。
在实例化步骤S101中,在检测到用户在所述浏览器中的触发操作后,用户的触发操作可以是点击、双击、单击、触摸等等,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;比如可以是,将浏览器封装一个为本地应用服务交互的js对象,实例化所述js对象得到ClientServiceJs对象。
在初始化步骤S102中,所述ClientServiceJs对象向本地应用服务发送初始化命令,本地应用服务接收到来自所述ClientServiceJs对象的初始化命令后,本地应用服务创建一个ClientHost对象,该ClientHost对象与发起初始化命令的所述ClientServiceJs对象对应。
本发明中,浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象,进而初始化本地应用服务为对应的浏览器创建一个ClientHost对象,然后通过ClientServiceJs对象将浏览器的参数发送至本地应用服务,本地应用服务通过ClientHost对象基于浏览器的参数创建显示界面窗口,用以显示本地应用的内容,并将该界面窗口作为浏览器的子窗口,即将本地应用显示在浏览器中,通过监控进程实现了窗口的监控,避免了浏览器需要与本地应用服务大量交互数据,使得显示流畅,解决了背景技术的中的缺陷,这是本发明的一个重要发明点。
在一个实施例中,ClientServiceJs对象发送的浏览器的参数包括浏览器的类型以及用于显示本地应用服务的界面窗口的子窗口的位置,ClientHost对象根据浏览器的参数,获取相应的浏览器窗口,创建本地应用服务的界面窗口,并将此窗口作为浏览器的子窗口,这样和浏览器页面上的元素排版在一起,使得本地应用于浏览器中的内容融合在一起,而不是分离的,或者看着很不协调,提高了用户体验,解决了背景技术的缺陷,这是本发明的另一个发明点。
本发明中,本地应用服务和浏览器之间的交互使用http/https和ws/wss,使用此协议,可以在所有浏览器中使用,此时需要本地应用服务是一个http和ws服务器。如果同步交互使用http/https协议,异步交互可以使用ws协议。
在一个实施例中,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程触发销毁操作以销毁所述本地应用服务界面和ClientHost对象;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,所述窗口监控线程触发销毁操作以销毁ClientHost对象和ClientServiceJs对象;所述窗口监控线程判断所述浏览器窗口是否正在显示,如果是,则判断所述浏览器的位置是否变化,如果所述浏览器的位置变化,则计算所述本地应用服务窗口界面的新位置X3/Y3=浏览器窗口的位置变化后的绝对位置X1/Y1+本地应用服务窗口界面在浏览器窗口的相对位置X2/Y2,计算所述本地应用服务窗口界面的新位置之后,移动并显示本地应用服务界面窗口;在所述窗口监控线程判断所述浏览器窗口不显示时,则隐藏本地应用服务界面窗口。
本发明中,设计了监控线程实时监控浏览器及本地应用服务的状态,在监控到浏览器的窗口位置变化时,通过ClientServiceJs对象将浏览器变化坐标X/Y发送本地应用服务,本地应用服务使用ClientHost对象计算所述本地应用服务窗口界面在所述浏览器的新位置X3/Y3,即实时地将该界面窗口随浏览器的窗口移动,看上去该界面窗口是浏览器窗口的一部分,而不是浏览器窗口移动了,本地应用服务的界面窗口位置无变化,使得用户体验不好,所述窗口监控线程判断所述浏览器窗口不显示时,比如浏览器最小化等,则监控线程触发隐藏命令隐藏本地应用服务界面窗口,从而减少浏览器与本地服务之间的数据交互,这是本发明的另一个重要发明点。
在一个实施例中,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程记录在所述浏览器窗口中显示的本地应用服务界面窗口的标识,所述窗口监控线程基于所述标识向所述本地应用服务界面发送销毁指令,并获取ClientHost对象在内存中的进程ID,所述本地应用服务界面基于所述销毁指令进行销毁,所述窗口监控线程基于所述ClientHost对象在内存中的进程ID将所述ClientHost对象销毁;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,记录所述本地应用服务界面窗口对应的浏览器的ID,并获取ClientHost对象在内存中的进程ID,并基于所述浏览器的ID的获取ClientServiceJs对象在内存中的进程ID,所述窗口监控线程基于所述ClientHost对象和ClientServiceJs对象在内存中的进程ID将所述ClientHost对象和ClientServiceJs对象销毁。
本发明提出了监控进程监控到浏览器窗口销毁、本地应用服务界面窗口销毁时如何具体地进行操作,以确保因本地应用服务与浏览器交互在内存中创建的ClientHost对象和ClientServiceJs对象销毁,释放了内存空间,提高了系统的可操作性,这是本发明的另一个重要发明点。
图2示出了本发明的一种本地应用服务与浏览器的交互装置,该装置包括:
实例化单元201,在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;
初始化单元202,初始化本地应用服务为对应的浏览器创建一个ClientHost对象;
创建单元203,所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将所述界面窗口作为所述浏览器窗口的子窗口;
监控单元204,创建一个窗口监控线程,所述窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。
在实例化单元201中,在检测到用户在所述浏览器中的触发操作后,用户的触发操作可以是点击、双击、单击、触摸等等,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;比如可以是,将浏览器封装一个为本地应用服务交互的js对象,实例化所述js对象得到ClientServiceJs对象。
在初始化单元202中,所述ClientServiceJs对象向本地应用服务发送初始化命令,本地应用服务接收到来自所述ClientServiceJs对象的初始化命令后,本地应用服务创建一个ClientHost对象,该ClientHost对象与发起初始化命令的所述ClientServiceJs对象对应。
本发明中,浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象,进而初始化本地应用服务为对应的浏览器创建一个ClientHost对象,然后通过ClientServiceJs对象将浏览器的参数发送至本地应用服务,本地应用服务通过ClientHost对象基于浏览器的参数创建显示界面窗口,用以显示本地应用的内容,并将该界面窗口作为浏览器的子窗口,即将本地应用显示在浏览器中,通过监控进程实现了窗口的监控,避免了浏览器需要与本地应用服务大量交互数据,使得显示流畅,解决了背景技术的中的缺陷,这是本发明的一个重要发明点。
在一个实施例中,ClientServiceJs对象发送的浏览器的参数包括浏览器的类型以及用于显示本地应用服务的界面窗口的子窗口的位置,ClientHost对象根据浏览器的参数,获取相应的浏览器窗口,创建本地应用服务的界面窗口,并将此窗口作为浏览器的子窗口,这样和浏览器页面上的元素排版在一起,使得本地应用于浏览器中的内容融合在一起,而不是分离的,或者看着很不协调,提高了用户体验,解决了背景技术的缺陷,这是本发明的另一个发明点。
本发明中,本地应用服务和浏览器之间的交互使用http/https和ws/wss,使用此协议,可以在所有浏览器中使用,此时需要本地应用服务是一个http和ws服务器。如果同步交互使用http/https协议,异步交互可以使用ws协议。
在一个实施例中,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程触发销毁操作以销毁所述本地应用服务界面和ClientHost对象;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,所述窗口监控线程触发销毁操作以销毁ClientHost对象和ClientServiceJs对象;所述窗口监控线程判断所述浏览器窗口是否正在显示,如果是,则判断所述浏览器的位置是否变化,如果是有变化,则计算所述本地应用服务窗口界面的新位置X3/Y3=浏览器窗口的位置变化后的绝对位置X1/Y1+本地应用服务窗口界面在浏览器窗口的相对位置X2/Y2,计算所述本地应用服务窗口界面的新位置之后,移动并显示本地应用服务界面窗口;在所述窗口监控线程判断所述浏览器窗口不显示时,则隐藏本地应用服务界面窗口。
本发明中,设计了监控线程实时监控浏览器及本地应用服务的状态,在监控到浏览器的窗口位置变化时,通过ClientServiceJs对象将浏览器变化坐标X/Y发送本地应用服务,本地应用服务使用ClientHost对象计算所述本地应用服务窗口界面在所述浏览器的新位置X3/Y3,即实时地将该界面窗口随浏览器的窗口移动,看上去该界面窗口是浏览器窗口的一部分,而不是浏览器窗口移动了,本地应用服务的界面窗口位置无变化,使得用户体验不好,所述窗口监控线程判断所述浏览器窗口不显示时,比如浏览器最小化等,则监控线程触发隐藏命令隐藏本地应用服务界面窗口,从而减少浏览器与本地服务之间的数据交互,这是本发明的另一个重要发明点。
在一个实施例中,当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程记录在所述浏览器窗口中显示的本地应用服务界面窗口的标识,所述窗口监控线程基于所述标识向所述本地应用服务界面发送销毁指令,并获取ClientHost对象在内存中的进程ID,所述本地应用服务界面基于所述销毁指令进行销毁,所述窗口监控线程基于所述ClientHost对象在内存中的进程ID将所述ClientHost对象销毁;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,记录所述本地应用服务界面窗口对应的浏览器的ID,并获取ClientHost对象在内存中的进程ID,并基于所述浏览器的ID的获取ClientServiceJs对象在内存中的进程ID,所述窗口监控线程基于所述ClientHost对象和ClientServiceJs对象在内存中的进程ID将所述ClientHost对象和ClientServiceJs对象销毁。
本发明提出了监控进程监控到浏览器窗口销毁、本地应用服务界面窗口销毁时如何具体地进行操作,以确保因本地应用服务与浏览器交互在内存中创建的ClientHost对象和ClientServiceJs对象销毁,释放了内存空间,提高了系统的可操作性,这是本发明的另一个重要发明点。
本发明一个实施例中提出了一种本地应用服务与浏览器的交互设备,所述设备包括处理器和存储器,所述处理器与所述处理器通过总线连接,所述存储器上存储有计算机程序,所述处理器执行所述存储器上的计算机程序时实现上述的方法,该设备可以是台式计算机、服务器、笔记本、智能终端等等。
本发明一个实施例中提出了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,当所述计算机存储介质上的计算机程序被处理器执行时实现上述的方法,该计算机存储介质可以是硬盘、DVD、CD、闪存等等存储器。
本发明的为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的装置。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种本地应用服务与浏览器的交互方法,其特征在于,该方法包括:
实例化步骤,在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;
初始化步骤,初始化本地应用服务为对应的浏览器创建一个ClientHost对象;
创建步骤,所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将所述界面窗口作为浏览器窗口的子窗口;
监控步骤,创建一个窗口监控线程,所述窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。
2.根据权利要求1所述的方法,其特征在于:在所述实例化步骤中,为浏览器封装一个本地应用服务的js对象,实例化所述js对象得到ClientServiceJs对象。
3.根据权利要求1所述的方法,其特征在于:所述参数包括浏览器的类型以及用于显示本地应用服务的界面窗口的子窗口的位置。
4.根据权利要求3所述的方法,其特征在于:当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程触发销毁操作以销毁所述本地应用服务界面和ClientHost对象;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,所述窗口监控线程触发销毁操作以销毁ClientHost对象和ClientServiceJs对象;所述窗口监控线程判断所述浏览器窗口是否正在显示,如果是,则判断所述浏览器的位置是否变化,如果变化,则计算所述本地应用服务窗口界面的新位置X3/Y3=浏览器窗口的位置变化后的绝对位置X1/Y1+本地应用服务窗口界面在浏览器窗口的相对位置X2/Y2,计算所述本地应用服务窗口界面的新位置之后,移动并显示本地应用服务界面窗口;在所述窗口监控线程判断所述浏览器窗口不显示时,则隐藏本地应用服务界面窗口。
5.根据权利要求4所述的方法,其特征在于:当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程记录在所述浏览器窗口中显示的本地应用服务界面窗口的标识,所述窗口监控线程基于所述标识向所述本地应用服务界面发送销毁指令,并获取ClientHost对象在内存中的进程ID,所述本地应用服务界面基于所述销毁指令进行销毁,所述窗口监控线程基于所述ClientHost对象在内存中的进程ID将所述ClientHost对象销毁;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,记录所述本地应用服务界面窗口对应的浏览器的ID,并获取ClientHost对象在内存中的进程ID,并基于所述浏览器的ID的获取ClientServiceJs对象在内存中的进程ID,所述窗口监控线程基于所述ClientHost对象和ClientServiceJs对象在内存中的进程ID将所述ClientHost对象和ClientServiceJs对象销毁。
6.一种本地应用服务与浏览器的交互装置,其特征在于,该装置包括:
实例化单元,在检测到用户在所述浏览器中的触发操作后,所述浏览器实例化一个用于与本地应用服务交互的ClientServiceJs对象;
初始化单元,初始化本地应用服务为对应的浏览器创建一个ClientHost对象;
创建单元,所述ClientServiceJs对象将所述浏览器的参数发送至本地应用服务,所述本地应用服务在接收到创建窗口请求时,将所述创建窗口请求发送至ClientHost对象,所述ClientHost对象基于所述浏览器的参数创建本地应用服务的界面窗口,并将所述界面窗口作为浏览器窗口的子窗口;
监控单元,创建一个窗口监控线程,所述窗口监控线程用于监控所述浏览器窗口及所述本地应用服务的界面窗口的状态。
7.根据权利要求6所述的装置,其特征在于:在所述实例化单元中,为浏览器封装一个本地应用服务的js对象,实例化所述js对象得到ClientServiceJs对象。
8.根据权利要求7所述的装置,其特征在于:所述参数包括浏览器的类型以及用于显示本地应用服务的界面窗口的子窗口的位置。
9.根据权利要求8所述的装置,其特征在于:当所述窗口监控线程监控到浏览器窗口销毁时,所述窗口监控线程触发销毁操作以销毁所述本地应用服务界面和ClientHost对象;当所述窗口监控线程监控到本地应用服务界面窗口销毁时,所述窗口监控线程触发销毁操作以销毁ClientHost对象和ClientServiceJs对象;所述窗口监控线程判断所述浏览器窗口是否正在显示,如果是,则判断所述浏览器的位置是否变化,如果变化,则计算所述本地应用服务窗口界面的新位置X3/Y3=浏览器窗口的位置变化后的绝对位置X1/Y1+本地应用服务窗口界面在浏览器窗口的相对位置X2/Y2,计算所述本地应用服务窗口界面的新位置之后,移动并显示本地应用服务界面窗口;在所述窗口监控线程判断所述浏览器窗口不显示时,则隐藏本地应用服务界面窗口。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,其特征在于,当所述计算机存储介质上的计算机程序被处理器执行时实现权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111594232.0A CN113986447B (zh) | 2021-12-24 | 2021-12-24 | 一种本地应用服务与浏览器的交互方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111594232.0A CN113986447B (zh) | 2021-12-24 | 2021-12-24 | 一种本地应用服务与浏览器的交互方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986447A CN113986447A (zh) | 2022-01-28 |
CN113986447B true CN113986447B (zh) | 2022-03-29 |
Family
ID=79734243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111594232.0A Active CN113986447B (zh) | 2021-12-24 | 2021-12-24 | 一种本地应用服务与浏览器的交互方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986447B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752388A (zh) * | 2012-06-29 | 2012-10-24 | 百度在线网络技术(北京)有限公司 | 基于浏览器的交互系统、方法、浏览器和云端服务器 |
CN103064750A (zh) * | 2012-12-25 | 2013-04-24 | 北京奇虎科技有限公司 | 一种浏览器控件的中断恢复方法及系统 |
CN103150312A (zh) * | 2011-12-23 | 2013-06-12 | 腾讯科技(深圳)有限公司 | 一种在网络应用中打开外链的方法和终端 |
US10083159B1 (en) * | 2016-07-13 | 2018-09-25 | Screen Share Technology Ltd. | Method for recording, editing and reproduction of web browser session |
CN110134897A (zh) * | 2019-04-10 | 2019-08-16 | 口碑(上海)信息技术有限公司 | 浏览器窗口控制方法及装置 |
CN110633156A (zh) * | 2018-06-22 | 2019-12-31 | 杭州海康威视系统技术有限公司 | 浏览器关联应用程序的方法、装置及电子设备、存储介质 |
CN111124556A (zh) * | 2018-10-31 | 2020-05-08 | 杭州海康威视系统技术有限公司 | 一种窗口操作的方法及装置 |
CN111783019A (zh) * | 2020-08-04 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 浏览器子页面创建方法、装置、计算机设备和存储介质 |
CN112099965A (zh) * | 2020-08-07 | 2020-12-18 | 咪咕文化科技有限公司 | 原生应用调用js的方法、装置、电子设备及存储介质 |
CN112257032A (zh) * | 2019-10-21 | 2021-01-22 | 国家计算机网络与信息安全管理中心 | 一种确定app责任主体的方法及系统 |
CN112470194A (zh) * | 2019-04-12 | 2021-03-09 | 艾司科软件有限公司 | 用于生成和查看具有印刷特征的对象的3d可视化的方法和系统 |
CN113032080A (zh) * | 2021-03-31 | 2021-06-25 | 广州虎牙科技有限公司 | 页面实现方法、应用程序、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366136B2 (en) * | 2017-09-20 | 2019-07-30 | Wolters Kluwer Elm Solutions, Inc. | Method for interacting with a web browser embedded in another software application |
-
2021
- 2021-12-24 CN CN202111594232.0A patent/CN113986447B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150312A (zh) * | 2011-12-23 | 2013-06-12 | 腾讯科技(深圳)有限公司 | 一种在网络应用中打开外链的方法和终端 |
CN102752388A (zh) * | 2012-06-29 | 2012-10-24 | 百度在线网络技术(北京)有限公司 | 基于浏览器的交互系统、方法、浏览器和云端服务器 |
CN103064750A (zh) * | 2012-12-25 | 2013-04-24 | 北京奇虎科技有限公司 | 一种浏览器控件的中断恢复方法及系统 |
US10083159B1 (en) * | 2016-07-13 | 2018-09-25 | Screen Share Technology Ltd. | Method for recording, editing and reproduction of web browser session |
CN110633156A (zh) * | 2018-06-22 | 2019-12-31 | 杭州海康威视系统技术有限公司 | 浏览器关联应用程序的方法、装置及电子设备、存储介质 |
CN111124556A (zh) * | 2018-10-31 | 2020-05-08 | 杭州海康威视系统技术有限公司 | 一种窗口操作的方法及装置 |
CN110134897A (zh) * | 2019-04-10 | 2019-08-16 | 口碑(上海)信息技术有限公司 | 浏览器窗口控制方法及装置 |
CN112470194A (zh) * | 2019-04-12 | 2021-03-09 | 艾司科软件有限公司 | 用于生成和查看具有印刷特征的对象的3d可视化的方法和系统 |
CN112257032A (zh) * | 2019-10-21 | 2021-01-22 | 国家计算机网络与信息安全管理中心 | 一种确定app责任主体的方法及系统 |
CN111783019A (zh) * | 2020-08-04 | 2020-10-16 | 腾讯科技(深圳)有限公司 | 浏览器子页面创建方法、装置、计算机设备和存储介质 |
CN112099965A (zh) * | 2020-08-07 | 2020-12-18 | 咪咕文化科技有限公司 | 原生应用调用js的方法、装置、电子设备及存储介质 |
CN113032080A (zh) * | 2021-03-31 | 2021-06-25 | 广州虎牙科技有限公司 | 页面实现方法、应用程序、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
"基于Web的富客户端跨平台移动应用开发技术研究";吕昕;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20150915;第I138-438页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113986447A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7051288B2 (en) | Method, system, and product for a java-based desktop to provide window manager services on UNIX | |
US9860139B2 (en) | Passive monitoring of live virtual desktop infrastructure (VDI) deployments | |
US10949154B2 (en) | Systems and methods for using screen sampling to detect display changes | |
US9912724B2 (en) | Moving objects of a remote desktop in unstable network environments | |
US20050091611A1 (en) | Responsive user interface to manage a non-responsive application | |
US20140047011A1 (en) | Virtual window screen capture | |
US20120005269A1 (en) | Management of Local Applications in Local and Remote Desktops in a Server-Based Computing Environment | |
CN113032080B (zh) | 页面实现方法、应用程序、电子设备及存储介质 | |
US20170222891A1 (en) | Automatic asynchronous handoff identification | |
CN104881273B (zh) | 一种网页渲染的分析方法和终端设备 | |
JP2016502200A (ja) | スワイプジェスチャ認識技術を使用したコンテンツ操作 | |
CN110909279A (zh) | 一种网页的渲染方法、装置、计算机设备和存储介质 | |
GB2518739A (en) | Custom Correlation of a Distributed Business Transaction | |
WO2019242435A1 (zh) | 浏览器关联应用程序 | |
CN113778583A (zh) | 一种云桌面的本地应用的发布方法、装置、设备和介质 | |
US20180013607A1 (en) | Component loading based on user interactions | |
WO2013112159A1 (en) | Image-based application automation | |
US10725797B2 (en) | Service-driven dynamic user interface technology | |
US9507655B2 (en) | Tracking asynchronous entry points for an application | |
EP1717715A1 (en) | State machine-driven interactive system and associated methods | |
CN113986447B (zh) | 一种本地应用服务与浏览器的交互方法、装置及存储介质 | |
CN103902727B (zh) | 网络搜索方法和装置 | |
CN110928706B (zh) | 小程序交互方法、装置、电子设备及存储介质 | |
CN115454296B (zh) | 一种跨运行环境的用户行为智能融合方法 | |
CN114911402A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |