CN116466970A - 一种应用页面的更新方法、装置及电子设备 - Google Patents
一种应用页面的更新方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116466970A CN116466970A CN202310298372.6A CN202310298372A CN116466970A CN 116466970 A CN116466970 A CN 116466970A CN 202310298372 A CN202310298372 A CN 202310298372A CN 116466970 A CN116466970 A CN 116466970A
- Authority
- CN
- China
- Prior art keywords
- page
- application
- update
- target application
- updating
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000009877 rendering Methods 0.000 claims abstract description 23
- 230000000007 visual effect Effects 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000694 effects Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- 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
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种应用页面的更新方法、装置及电子设备,属于计算机技术领域,本申请实施例的应用页面的更新方法包括:获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息;根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点;基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新,使得对应用页面的更新更加主动,无需依赖用户手动操作来获取页面更新消息,快速实现应用页面的实时无感更新。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种应用页面的更新方法、装置及电子设备。
背景技术
随着越来越多的应用(Application,App)都在拓展实时互动性比较强的功能模块,使得在应用的使用过程中可能需要对应用页面进行实时更新。
相关技术对于应用页面的更新主要通过原生控制开发,结合一些组件化的技术进行页面控件的可视化渲染,需要在进入到应用页面后,请求服务端下发更新后的页面数据,然后将页面数据反序列化为该应用页面中的各个视图(view)实例,完成对应用页面上各个页面元素的更新。
可见,相关技术在对应用页面的进行更新时,需要用户手动操作,例如通过重新加载该页面,或刷新布布,或退出页面后重新进入等等,才能获取新的页面数据,无法实现对应用页面的实时快速更新。
发明内容
有鉴于此,本申请提供一种应用页面的更新方法、装置及电子设备以实现对应用页面的实时快速更新。
具体地,本申请是通过如下技术方案实现的:
第一方面,提供了一种应用页面的更新方法,应用于运行在用户终端上的应用,所述应用与所述应用的服务端之间存在长连接,所述方法包括:
获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息;
根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点;
基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新。
可选的,所述根据所述页面更新消息对所述目标应用页面对应的视图树进行更新,包括:
确定所述页面更新消息对应的更新类型;
调用与所述更新类型对应的更新方法对所述目标应用页面对应的视图树进行更新。
可选的,所述调用与所述更新类型对应的更新方法对所述目标应用页面对应的视图树进行更新,包括:
获取所述目标应用页面对应的视图树的根节点;
根据所述根节点对所述目标应用页面包含的页面元素进行解析,以得到所述目标应用页面对应的视图树;
调用与所述更新类型对应的更新方法对所述视图树进行更新。
可选的,所述页面更新消息包括对所述目标应用页面中的目标页面元素的更新消息;
所述调用与所述更新类型对应的更新方法对所述视图树进行更新,包括:
调用与所述更新类型对应的更新方法在所述视图树中对所述与所述目标页面元素对应的视图节点进行更新。
可选的,所述更新类型包括以下示出的一个或者多个的组合:
增加视图、删除视图、更新视图。
可选的,所述页面更新消息包括页面布局更新消息;
根据所述页面更新消息对所述目标应用页面对应的视图树进行更新,包括:
根据所述页面布局更新消息对所述目标应用页面对应的视图树上包含的与页面布局相关的页面元素对应的视图节点进行更新。
可选的,所述获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息,包括:
获取所述服务端响应于与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令,通过所述长连接下发的针对所述目标应用页面的页面更新消息。
第二方面,提供了一种应用页面的更新方法,应用于应用的服务端,所述服务端与运行在用户终端上的应用之间存在长连接,所述方法包括:
获取与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令;
根据所述页面更新指令,通过所述长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点。
第三方面,提供了一种应用页面的更新装置,所述装置包括:
消息接收模块,用于获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息;
页面更新模块,用于根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点;
页面渲染模块,用于基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新。
第四方面,提供了一种应用页面的更新装置,所述装置包括:
指令接收模块,用于获取与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令;
消息发送模块,用于根据所述页面更新指令,通过长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面或第二方面所述方法的步骤。
第六方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面或第二方面所述方法的步骤。
本申请实施例通过与服务端的长连接从服务端获取针对应用输出的目标应用页面的页面更新消息来对目标应用页面进行更新,使得对应用页面的更新更加主动,无需依赖用户手动操作来获取页面更新消息,快速实现应用页面的实时无感更新。
附图说明
图1是本申请一示例性实施例示出的一种应用页面的更新方法的流程示意图;
图2是本申请一示例性实施例示出的一种应用页面的更新系统的结构示意图;
图3是本申请一示例性实施例示出的另一种应用页面的更新方法的流程示意图;
图4是本申请一示例性实施例示出的另一种应用页面的更新方法的流程示意图;
图5是本申请一示例性实施例示出的一种应用页面的更新装置的结构示意图;
图6是本申请一示例性实施例示出的另一种应用页面的更新装置的结构示意图;
图7是本申请一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
当开发人员期望对应用的应用页面进行更新时,传统的原生App开发流程需要先由UI设计师设计UI视觉稿,App开发人员根据视觉稿进行代码开发,在开发完成后进行构建打包为新的安装包,然后将新的安装包投放到官网或应用市场等渠道,用户在接收到新的安装包的推送后进行下载、安装,使App升级,在重启App时可以使应用页面的更新生效。
可见,传统的应用页面的更新过程从需求产生到最终客户端的应用页面生效的链路非常冗长。为了能够缩短用户应用页面的更新迭代周期,相关技术主要采用了如下三种方案:
方案1.在应用中内嵌网页(web)应用页面,例如html5页面,只需要重新更改和部署web应用即可实现App中的页面刷新。由于App中的web应用页面是通过webview进行渲染刷新,经过一个中间层的解析和渲染,降低了App中页面的渲染效率和流畅度。
方案2.通过JavaScript来调用原生的用户界面(User interface,UI)控件,例如WeexUI、ReactNative UI等等,进而在方案1的基础上,一定程度上提高了页面的渲染效率。渲染效率跟原生控件保持一致了,但还是经过了JavaScript的中转,在数据解析和JavaScript调用的这一步仍然带来了额外的调用成本。
方案3.通过纯原生控件开发,结合一些组件化的技术进行页面控件渲染,请求服务端下发例如json格式的页面数据,然后将页面数据反序列化为对应的View实例,将更新到对应的页面元素上。由于该方案使用的纯原生语言+原生UI控件,因此在页面的渲染效率和页面流畅度上是以上这几种方案中最高的,这方面也几乎完全等同于传统方式开发的原生UI控件了。但由于在进行页面更新时依赖用户的手动操作,例如重新加载该页面的数据,或刷新页面,或退出页面后重新进入等等,才能获取应用页面的最新状态。
有鉴于此,本说明书提出了一种应用页面的更新方法,利用端到端的全双工通信的技术,在应用与服务端之间建立长连接,服务端可以根据远端的指示通过所述长连接向所有运行在用户终端上的应用发送页面更新消息,使应用可以根据该页面更新消息对应用页面中包含的页面元素进行更新。
在实现时,应用的服务端可以先从与应用对应的远程管理客户端获取针对所述应用输出的目标应用页面的页面更新指令,根据所述页面更新指令,通过所述长连接向运行在用户终端上的应用下发针对所述目标应用页面的页面更新消息。运行在用户终端上的应用在获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息之后,可以根据所述页面更新消息对所述目标应用页面对应的视图树进行更新,以完成对所述目标应用页面包含的页面元素进行更新。
在以上技术方案中,通过与服务端的长连接从服务端获取针对应用输出的目标应用页面的页面更新消息来对目标应用页面进行更新,使得对应用页面的更新更加主动,无需依赖用户手动操作来获取页面更新消息,快速实现应用页面的实时无感更新。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
请参见图1,图1示出了本申请实施例提供的一种应用页面的更新方法。该方法的执行主体为运行在用户终端上的应用,所述应用与所述应用的服务端之间存在长连接。
其中,所述长连接是指基于端到端的全双工通信技术建立的连接,并且在建立连接后不管是否使用都保持连接,直到一方关闭连接为止。所述长连接的具体连接方式可以多种多样,例如可以采用WebSocket连接。所述应用与服务端建立长连接的时机可以根据实际的需要进行设定,可以在用户终端上启动应用或打开应用页面时与服务端建立长连接,然后在退出应用或关闭应用页面时关闭与服务端的长连接,或者,也可以在应用执行某一特定事务或者在进入到某一特定应用页面时与服务端建立长连接,然后在应用退出该特定事务或者离开该特定应用页面时关闭与服务端的长连接,例如,可以在用户打开应用的直播页面时与服务端建立长连接,并且在退出该直播页面关闭与服务端的长连接。
需要说明的是,为了保持长连接,在连接保持期间,如果没有数据包发送,则依然需要双方发送链路检测包。
所述应用页面的更新方法包括以下步骤。
S110、获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息。
在需要对运行在用户终端上的应用输出的目标应用页面进行页面更新时,服务端可以通过与该应用之间的长连接向所述应用下发针对所述目标应用页面的页面更新消息。
所述服务端向应用下发的页面更新消息的触发时机可以根据实际的需要进行设定。服务端可以采用定期发送的方式向所述应用发送页面更新消息,例如,可以在服务端与应用建立长连接后的预设时间发送所述页面更新消息,或者,在服务端监测到应用打开目标应用页面后的预设时间发送针对所述目标应用页面的页面更新消息,或者也可以根据预设的周期发送所述页面更新消息。
所述服务端也可以是响应于用户通过与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令后,通过所述长连接下发针对所述目标应用页面的页面更新消息。
请参见图2,图2示出了本申请实施例的一种应用页面的更新系统的结构示意图,所述应用页面的更新系统包括:远程管理客户端201、应用的服务端202和运行在用户终端的应用203,其中,应用服务端202和应用203之间存在长连接。所述远程管理客户端201可以多种多样,例如可以为与所述应用关联的浏览器、PC端、手机端、其它终端、或者为一命令行工具客户端等等。
应用的管理人员或开发人员可以根据应用的实际需求,例如,需要在正在进行直播的直播页面中增加一个动态图标,或者需要改变直播页面中某一页面元素的显示效果或布局等等,通过远程管理客户端向服务端发送针对目标应用页面的页面更新指令。
服务端在接收到该页面更新指令后,可以根据所述页面更新指令通过与应用的长连接向所述应用下发页面更新消息。
其中,所述服务端下发的页面更新消息可以与页面更新指令相同或不同;若相同,则所述服务端仅是作为页面更新消息的中转设备,将从远程管理客户端接收到的页面更新消息转发给所述应用;若不同,服务端可以先根据所述页面更新指令得到所述页面更新消息,再通过长连接将所述页面更新消息下发给应用,例如,所述服务端可以维护有大量页面元素的多种模板,所述页面更新指令可以用于向服务端指示使用其中任一页面元素的任一模板,服务端根据所述任一页面元素的任一模板得到所述页面更新消息,并下发给应用。
需要说明的是,所述服务端下发的页面更新消息针对的目标应用页面可以是在所述页面更新消息中指定的一个或多个应用页面,也可以是指所述应用当前输出的所有应用页面,或者,所述应用当前输出的所有应用页面中最顶层的应用页面,也即当前显示的应用页面。
服务端下发的页面更新消息可以包括针对目标应用页面中一个或多个目标页面元素的更新消息。为了简便起见,在下面的实施例中均以每条页面更新消息为针对一项目标页面元素的一次更新操作的页面更新消息为例进行举例说明。
S120、根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点。
应用在接收到服务端通过长连接下发的针对目标应用页面的页面更新消息后,可以先确定所述目标应用页面,得到所述目标应用页面当前的视图树,然后根据页面更新消息对所述目标应用页面的视图树进行更新。
其中,若所述目标应用页指定了目标应用页面,则所述目标应用页面可以为所述页面更新消息中指定的任一应用页面;或者,若所述页面更新消息中未指定所述目标应用页面,则所述目标应用页面也可以是指所述应用当前输出的所有应用页面,或者,所述应用当前输出的所有应用页面中最顶层的应用页面。
可以预先对页面元素的更新操作进行划分,确定若干更新类型,例如,在一种实施方式中,所述若干更新类型可以包括以下示出的一个或者多个的组合:增加视图、删除视图、更新视图,以及其它自定义的更新类型。所述应用在接收到下发的页面更新消息后,可以确定出与所述页面更新消息对应的更新类型。
例如,在一种示出的实施方式中,页面更新消息可以包含用于指示所述更新类型的类型信息或类型标识,例如,与增加视图对应的类型信息为“type:add”,与删除视图对应的类型信息为“type:remove”,与更新视图对应的类型信息为“type:update”,与自定义的更新类型对应的类型信息为“type:custom”等等。应用在接收到页面更新消息时,可以根据该页面更新消息中包含的类型信息或类型标识确定该页面更新消息对应的更新类型。
需要说明的是,所述应用每次接收到的页面更新消息中可以仅包括对应于一种更新类型的一条或多条页面更新消息,也可以包括对应于多种更新类型的一条或多条页面更新消息。
相应的,应用还可以维护有与各个更新类型对应的更新方法。例如,与增加视图对应的addview方法,与删除视图对应的removeview方法,与更新视图对应的updateview方法,自定义的更新类型对应的自定义更新方法等等。应用在接收到下发的页面更新消息后,可以先确定与所述页面更新消息对应的更新类型;再调用与所述更新类型对应的更新方法对所述目标应用页面对应视图树进行更新。
应用在接收到页面更新消息后,可以先确定目标应用页面,然后获取与所述目标应用页面对应的视图树,所述视图树中包括与所述目标应用页面包含的各个页面元素对应的视图节点。应用获取所述目标应用页面的视图树的方式可以多种多样,可以直接调取预先保存的所述目标应用页面的视图树的数据;也可以直接对所述目标应用页面进行解析,先获取所述目标应用页面对应的视图树的根节点,然后根据所述根节点对所述目标应用页面包含的页面元素进行解析,以得到所述目标应用页面对应的视图树。
在获取到所述目标应用页面的视图树后,所述应用可以调用与所述页面更新消息对应的更新类型对应的更新方法对所述视图树进行更新。可以根据页面更新消息中包括的目标页面元素的更新消息遍历所述视图树中的各个视图节点,查询到与所述目标页面元素对应的视图节点或者与所述目标页面元素对应的视图节点的位置,然后调用与所述更新类型对应的更新方法在所述视图树中对与所述目标页面元素对应的视图节点进行更新。
例如,若所述页面更新消息包括对目标页面元素的增加视图操作,则可以从所述页面更新消息中确定出与所述目标页面元素对应的视图节点的位置,然后调用addview方法在视图树中的相应位置增加与所述目标页面元素对应的视图节点;若所述页面更新消息包括对目标页面元素的删除视图操作,则可以从所述页面更新消息中确定出与所述目标页面元素对应的视图节点或者与所述目标页面元素对应的视图节点的位置,然后调用removeview方法在所述视图树中去除与所述目标页面元素对应的视图节点;若所述页面更新消息包括对目标页面元素的更新视图操作,则可以从所述页面更新消息中确定出与所述目标页面元素对应的视图节点或者与所述目标页面元素对应的视图节点的位置,然后调用updateview方法在所述视图树中对所述目标页面元素对应的视图节点进行更新。
可见,本申请实施例中的页面更新消息是针对原生view级别的更新,而不是针对某一具体事务的更新,因此,具有更强的泛化能力,理论上可以支持一切可以进行序列化和反序列化的应用页面更新。
需要说明的是,所述页面更新消息可以包括与页面布局相关的页面布局更新消息,或者其它页面更新消息,相应的,所述视图树中也可以包含与页面布局相关的页面元素对应的视图节点。若所述页面更新消息包括页面布局更新消息,则步骤S120可以包括根据所述页面布局更新消息对所述目标应用页面对应的视图树上包含的与页面布局相关的页面元素对应的视图节点进行更新。
S130、基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新。
应用在根据页面更新信息对目标应用页面的视图树进行更新后,可以基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新,从而在无需用户进行操作的情况下,实现对应用页面的无感更新。
需要说明的是,步骤S130和步骤S120之间可以不分先后,基于视图树对目标应用页面进行可视化渲染可以是在对视图树进行更新的过程中实现,例如,在调用更新方法对目标应用页面对应的视图树中与目标页面元素的对应的视图节点进行更新后,马上在目标应用页面上进行可视化渲染显示更新后的目标页面元素;或者,也可以在需要显示所述更新后的目标页面元素时,再进行可视化渲染。
需要说明的是,在不同的运行环境下的应用页面为不同的应用组件,例如,若所述应用为安卓(Android)的App,则该应用输出的应用页面为Activity组件;若所述应用为IOS的App,则该应用输出的应用页面为viewcontroller组件。
请参见图3,以应用为安卓的App为例,基于如图2所示的更新系统,图3示出了一种应用页面的更新方法,所述方法包括如下步骤。
应用的管理人员或开发人员可以通过远程管理客户端向服务端发送页面更新消息;
服务端将接收到的页面更新消息转发给运行在用户终端的应用;
应用通过预设的消息回调方法,例如onReceiveMessage方法,监听所述服务端发送的页面更新消息;
应用在监听到页面更新消息时,确定所述页面更新消息对应的更新类型,并根据更新类型进行分发,分别调用与更新类型对应的更新方法;其中,所述更新类型可以包括add、remove、update和custom等等,对应的更新方法包括:addview方法、removeview方法、updateview方法和自定义方法等等;
应用预设有用于对页面进行监测的ActivietyObserver方法,由ActivityObserver通过监听获取应用最顶层的Activity实例作为目标应用页面,然后通过对最顶层的Activity实例进行解析获取与所述最顶层的Activity实例对应的视图树的根节点,再根据所述根节点进一步对所述最顶层的Activity实例进行解析,得到与所述最顶层的Activity实例中各个页面元素对应的视图节点,解析出所述最顶层的Activity实例的整个视图树,并根据调用的更新方法对视图树中对应的视图节点进行更新;
完成对所述最顶层的Activity实例的应用页面更新。
由上述实施例的技术方案可知,本申请实施例通过与服务端的长连接从服务端获取针对应用输出的目标应用页面的页面更新消息来对目标应用页面进行更新,使得对应用页面的更新更加主动,无需依赖用户手动操作来获取页面更新消息,快速实现应用页面的实时无感更新。
请参见图4,图4示出了一种应用页面的更新方法,该方法的执行主体为应用的服务端,所述应用页面的更新方法包括以下步骤。
S410、获取与应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令;
S420、根据所述页面更新指令,通过所述长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点。
需要说明的是,步骤S410-S420可以实现图1中步骤S110-S130的方法实施例,并得到相同或相近的技术效果,重复部分此处不再赘述。
由上述实施例的技术方案可知,本申请实施例通过获取与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令,再通过与应用的长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新,使得对应用页面的更新更加主动,无需依赖用户手动操作来获取页面更新消息,快速实现应用页面的实时无感更新。
与前述应用侧执行的应用页面的更新方法的实施例相对应,本申请还提供了应用页面的更新装置的实施例。
如图5所示,所述应用页面的更新装置包括:消息接收模块501、页面更新模块502和页面渲染模块503。
所述消息接收模块501用于获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息;所述页面更新模块502用于根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点;所述页面渲染模块503用于基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新。
可选的,所述页面更新模块502用于:
确定所述页面更新消息对应的更新类型;
调用与所述更新类型对应的更新方法对所述目标应用页面对应的视图树进行更新。
可选的,所述页面更新模块502用于:
获取所述目标应用页面对应的视图树的根节点;
根据所述根节点对所述目标应用页面包含的页面元素进行解析,以得到所述目标应用页面对应的视图树;
调用与所述更新类型对应的更新方法对所述视图树进行更新。
可选的,所述页面更新消息包括对所述目标应用页面中的目标页面元素的更新消息;
所述页面更新模块502用于调用与所述更新类型对应的更新方法在所述视图树中对所述与所述目标页面元素对应的视图节点进行更新。
可选的,所述更新类型包括以下示出的一个或者多个的组合:
增加视图、删除视图、更新视图。
可选的,所述页面更新消息包括页面布局更新消息;
所述页面更新模块502用于根据所述页面布局更新消息对所述目标应用页面对应的视图树上包含的与页面布局相关的页面元素对应的视图节点进行更新。
可选的,所述消息接收模块501用于获取所述服务端响应于与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令,通过所述长连接下发的针对所述目标应用页面的页面更新消息。
可选的,所述远程管理客户端包括浏览器和终端。
由上述实施例的技术方案可知,本申请实施例通过与服务端的长连接从服务端获取针对应用输出的目标应用页面的页面更新消息来对目标应用页面进行更新,使得对应用页面的更新更加主动,无需依赖用户手动操作来获取页面更新消息,快速实现应用页面的实时无感更新。
与前述应用的服务端侧的应用页面的更新方法的实施例相对应,本申请还提供了应用页面的更新装置的实施例。
如图6所示,所述应用页面的更新装置包括:指令接收模块601和消息发送模块602。
所述指令接收模块601用于获取与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令;所述消息发送模块602用于根据所述页面更新指令,通过长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点。
由上述实施例的技术方案可知,本申请实施例通过获取与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令,再通过与应用的长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新,使得对应用页面的更新更加主动,无需依赖用户手动操作来获取页面更新消息,快速实现应用页面的实时无感更新。
本申请应用页面的更新装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图MM所示,为本申请应用页面的更新装置所在电子设备的一种硬件结构图,除了图MM所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述应用页面的更新方法的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的处理单元。通常,处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种应用页面的更新方法,其特征在于,应用于运行在用户终端上的应用,所述应用与所述应用的服务端之间存在长连接,所述方法包括:
获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息;
根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点;
基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新。
2.根据权利要求1所述的方法,其特征在于,所述根据所述页面更新消息对所述目标应用页面对应的视图树进行更新,包括:
确定所述页面更新消息对应的更新类型;
调用与所述更新类型对应的更新方法对所述目标应用页面对应的视图树进行更新。
3.根据权利要求2所述的方法,其特征在于,所述调用与所述更新类型对应的更新方法对所述目标应用页面对应的视图树进行更新,包括:
获取所述目标应用页面对应的视图树的根节点;
根据所述根节点对所述目标应用页面包含的页面元素进行解析,以得到所述目标应用页面对应的视图树;
调用与所述更新类型对应的更新方法对所述视图树进行更新。
4.根据权利要求3所述的方法,其特征在于,所述页面更新消息包括对所述目标应用页面中的目标页面元素的更新消息;
所述调用与所述更新类型对应的更新方法对所述视图树进行更新,包括:
调用与所述更新类型对应的更新方法在所述视图树中对所述与所述目标页面元素对应的视图节点进行更新。
5.根据权利要求2-4任一所述的方法,其特征在于,所述更新类型包括以下示出的一个或者多个的组合:
增加视图、删除视图、更新视图。
6.根据权利要求1所述的方法,其特征在于,所述页面更新消息包括页面布局更新消息;
根据所述页面更新消息对所述目标应用页面对应的视图树进行更新,包括:
根据所述页面布局更新消息对所述目标应用页面对应的视图树上包含的与页面布局相关的页面元素对应的视图节点进行更新。
7.根据权利要求1所述的方法,其特征在于,所述获取所述服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息,包括:
获取所述服务端响应于与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令,通过所述长连接下发的针对所述目标应用页面的页面更新消息。
8.一种应用页面布局更新方法,其特征在于,应用于应用的服务端,所述服务端与运行在用户终端上的应用之间存在长连接,所述方法包括:
获取与所述应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令;
根据所述页面更新指令,通过所述长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点。
9.一种应用页面的更新装置,其特征在于,所述装置包括:
消息接收模块,用于获取服务端通过长连接下发的针对所述应用输出的目标应用页面的页面更新消息;
页面更新模块,用于根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点;
页面渲染模块,用于基于更新后的所述视图树对所述目标应用页面进行可视化渲染,以对所述目标应用页面包含的页面元素进行更新。
10.一种应用页面的更新装置,其特征在于,所述装置包括:
指令接收模块,用于获取应用对应的远程管理客户端提交的针对所述应用输出的目标应用页面的页面更新指令;
消息发送模块,用于根据所述页面更新指令,通过长连接向所述应用下发针对所述目标应用页面的页面更新消息,以使所述应用根据所述页面更新消息对所述目标应用页面对应的视图树进行更新;其中,所述视图树包括与所述目标应用页面包含的页面元素分别对应的视图节点。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-8任一所述方法的步骤。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-8任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310298372.6A CN116466970A (zh) | 2023-03-17 | 2023-03-17 | 一种应用页面的更新方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310298372.6A CN116466970A (zh) | 2023-03-17 | 2023-03-17 | 一种应用页面的更新方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116466970A true CN116466970A (zh) | 2023-07-21 |
Family
ID=87172644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310298372.6A Pending CN116466970A (zh) | 2023-03-17 | 2023-03-17 | 一种应用页面的更新方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116466970A (zh) |
-
2023
- 2023-03-17 CN CN202310298372.6A patent/CN116466970A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874539B (zh) | 资源配置方法、装置、终端及存储介质 | |
US9875150B2 (en) | Method and system for processing notifications amongst applications of a data processing system | |
KR20170099903A (ko) | 장치들에 걸쳐 디지털 개인 비서 에이전트를 스케일링하기 위한 기법 | |
CN108881228A (zh) | 云端注册激活方法、装置、设备和存储介质 | |
CN110781373B (zh) | 榜单更新方法、装置、可读介质和电子设备 | |
US10814229B2 (en) | Fragment-based mobile device application streaming utilizing crowd-sourcing | |
CN106412078B (zh) | 精准信息推送方法、装置和系统 | |
EP3298756B1 (en) | Interfacing with servers having different apis to obtain advertisement data | |
CN112689012A (zh) | 跨网络的代理通讯方法及装置 | |
WO2022160612A1 (zh) | 与车辆的车载系统交互方法、存储介质和移动终端 | |
US20170188214A1 (en) | Method and electronic device for sharing multimedia information | |
CN113766303B (zh) | 多屏互动方法、装置、设备及存储介质 | |
US9164817B2 (en) | Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal | |
CN111225255B (zh) | 目标视频推送播放方法、装置、电子设备及存储介质 | |
US20230319325A1 (en) | Information interaction method, apparatus and device | |
CN112653915A (zh) | 一种基于电视的传感赋能方法、装置、电视及存储介质 | |
CN116466970A (zh) | 一种应用页面的更新方法、装置及电子设备 | |
US20170134933A1 (en) | Optimizing setup for wireless devices | |
CN110647331A (zh) | 开发工具的获取方法及装置、存储介质、电子设备 | |
CN105471959A (zh) | 集群网络中虚拟机的启动方法及装置 | |
CN115587860A (zh) | 业务处理方法、装置、存储介质及电子设备 | |
CN114760259A (zh) | 离线消息发送方法、装置、电子设备及可读存储介质 | |
CN111292138B (zh) | 一种车载广告的更新方法、装置、电子设备及存储介质 | |
CN114490104A (zh) | Android系统模块中的信息转发方法、装置、设备及介质 | |
CN112711602A (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 |