CN110413913A - 一种页面刷新方法、装置、终端及存储介质 - Google Patents

一种页面刷新方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN110413913A
CN110413913A CN201910600961.9A CN201910600961A CN110413913A CN 110413913 A CN110413913 A CN 110413913A CN 201910600961 A CN201910600961 A CN 201910600961A CN 110413913 A CN110413913 A CN 110413913A
Authority
CN
China
Prior art keywords
view component
page
primary
target view
classloader
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
Application number
CN201910600961.9A
Other languages
English (en)
Inventor
赵博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN201910600961.9A priority Critical patent/CN110413913A/zh
Publication of CN110413913A publication Critical patent/CN110413913A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开实施例提供了一种页面刷新方法、装置、终端及存储介质。其中,所述方法包括:通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件;响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。

Description

一种页面刷新方法、装置、终端及存储介质
技术领域
本公开涉及互联网技术领域,尤其涉及一种页面刷新方法、装置、终端及存储介质。
背景技术
随着互联网技术的发展,基于互联网的应用越来越多,当应用中的页面状态或数据发生变化时,用户需要不断的刷新页面才能获取最新的页面状态或数据。
然而,在实现本公开的过程中,发明人发现相关技术中当对处于夜间模式的页面进行刷新时,每个页面均需要设置有用于刷新页面的代码,通过该代码实现对夜间模式开关的变化进行监测。可见,这种在页面中添加额外的代码逻辑,使得刷新页面的代码逻辑与页面原有的代码逻辑进行耦合的方式,增加开发复杂度,导致页面刷新的效率降低。针对上述技术问题,目前相关技术尚未提出有效解决方案。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开实施例提供了一种页面刷新方法,所述方法包括:
通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件;
响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。
本公开实施例还提供了一种页面刷新装置,所述装置包括:监听单元和发送单元;其中,
所述监听单元,用于通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件;
所述发送单元,用于响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。
本公开实施例还提供了一种终端,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述可执行指令时,实现本公开实施例提供的页面刷新方法。
本公开实施例还提供了一种存储介质,存储有可执行指令,所述可执行指令被执行时,用于实现本公开实施例提供的页面刷新方法。
应用本公开上述实施例具有以下有益效果:
本公开实施例所提供的页面刷新方法、装置、终端及存储介质,通过当前显示的页面中原生的视图组件来监听显示模式是否发生变化的事件,当监听到显示模式发生变化的事件时,响应于所监听到的事件,向目标视图组件发送通知消息。如此,能够使得目标视图组件基于接收到的通知消息,实现自主更新自身的属性特征,以使更新后的属性特征与显示模式相适配,可见,采用本公开实施例的技术方案,在将页面级细化成视图组件级的基础上实现页面的刷新过程,可以克服相关技术中针对每个页面需要逐一编译监测代码,来监测显示模式发生变化的缺陷,降低开发的复杂度,大大提高页面刷新的效率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的页面刷新系统的一个可选的架构示意图;
图2为本公开实施例提供的终端的一个可选的硬件结构示意图;
图3为本公开实施例提供的页面刷新方法的一个可选的实现流程示意图;
图4为本公开实施例提供的页面刷新方法的另一个可选的实现流程示意图;
图5为本公开实施例提供的浏览器被打开时页面中原生的视图组件的一个可选的显示界面示意图;
图6为本公开实施例提供的页面刷新方法的另一个可选的实现流程示意图;
图7为本公开实施例提供的页面刷新装置的一个可选的组成结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且本公开实施例所记载的各技术方案之间,可以在不冲突的情况下相互结合。
在对本公开进行进一步详细说明之前,先对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释。
1)组件,是一种用于人机交互的图形界面元素,包括基本组件和容器,基本组件又称为构件,比如按钮、文本框之类的图形界面元素;容器是一种比较特殊的组件,可以容纳其它基本组件,这里所说的容器比如可以是窗口、对话框等。
2)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
下面分析相关技术提供的关于页面刷新的方案。
目前,在对页面进行刷新的过程中,当页面的显示模式为夜间模式时,相关技术中是由每个页面监测夜间模式对应的开关的变化,当监测到夜间模式的开关发生变化时,开关与每个页面进行通信,此时对于每个页面而言,需要逐一查找与其对应的视图组件,然后通过开发者编译的代码实现修改查找到的视图组件的属性,从而实现页面的刷新。
相关技术中每个页面均需要监测夜间模式开关的变化,也即开发者需要关注夜间模式开关何时发生变化,以及夜间模式开关发生变化后,每个页面分别查找到的是哪些视图组件,以确定对哪些视图组件的属性进行修改。可见,上述的实现方式需要对每个页面逐一执行多步操作来完成页面的刷新,导致整个页面刷新的流程相对繁琐,且在每个页面中添加额外的代码逻辑(即添加用于刷新页面的代码),会增加开发复杂度,导致页面刷新的效率降低。
为解决相关技术的上述技术问题之一,本公开实施例提供的页面刷新方法,通过将页面级细化成视图组件级,由当前显示的页面中原生的视图组件来监听显示模式是否发生变化的事件,当监听到显示模式发生变化的事件时,响应于所监听到的事件,向目标视图组件发送通知消息,这样,能够使得目标视图组件基于接收到的通知消息,实现自主更新自身的属性特征,以使更新后的属性特征与显示模式相适配,从而实现页面的实时刷新。
图1为本公开实施例提供的页面刷新系统100的一个可选的架构示意图,参见图1,为实现支撑的一个示例性应用,终端400(示例性示出了终端400-1和终端400-2)中设置有客户端,客户端内嵌有浏览器、播放器或者社交应用软件等,浏览器、播放器或者社交应用软件在启动相应页面后,在页面中显示有原生的视图组件。
在一些实施例中,终端400在运行程序的过程中,本地执行本公开实施例的页面刷新方法:通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件;响应于所监听到的事件,向目标视图组件发送通知消息,这里的通知消息用于指示更新目标视图组件的属性特征,以使更新后的目标视图组件的属性特征与显示模式相适配。
终端400也可以通过网络300连接服务器200,由于服务器200可以保存有预先自定义的新的视图组件,这样,通过网络300可以从服务器200中获取相应的自定义的新的视图组件,并保存在本地缓存中,以实现原生的视图组件的后台数据支持,即将原生的视图组件替换为自定义的新的视图组件。其中,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
终端400,还用于通过客户端的图形界面410(示例性示出了图形界面410-1和图形界面410-2)显示页面刷新过程中的各种中间结果和最终结果,例如原生的视图组件的属性特征、更新后的目标视图组件的属性特征等。
继续参见图2,图2为本公开实施例提供的终端的一个可选的硬件结构示意图,终端可以是各种类型的终端,包括移动电话、笔记本电脑、数字广播接收器、个人数字助理(PDA,Personal Digital Assistant)、平板电脑(PAD)、便携式多媒体播放器(PMP,Portable Media Player)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字电视(TV)、台式计算机等等的固定终端。图2示出的终端仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图2所示,终端200可以包括处理装置(例如中央处理器、图形处理器等)201,其可以根据存储在只读存储器(ROM,Read Only Memory)202中的程序或者从存储装置208加载到随机访问存储器(RAM,Random Access Memory)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有终端200操作所需的各种程序和数据。处理装置201、ROM202以及RAM203通过总线204彼此相连。输入/输出(I/O,Input/Output)接口205也连接至总线204。
通常,以下装置可以连接至I/O接口205:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置206;包括例如液晶显示器(LCD,LiquidCrystal Display)、扬声器、振动器等的输出装置207;包括例如磁带、硬盘等的存储装置208;以及通信装置209。通信装置209可以允许终端200与其他设备进行无线或有线通信以交换数据。虽然图2示出了具有各种装置的终端200,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,所提供的流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置209从网络上被下载和安装,或者从存储装置208被安装,或者从ROM 202被安装。在计算机程序被处理装置201执行时,执行本公开实施例的方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM,Compact Disc Read-Only Memory)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、射频(RF,Radio Frequency)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述终端200中所包含的;也可以是单独存在,而未装配入终端200中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被终端200执行时,使得终端200执行本公开实施例提供的页面刷新方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN,LocalArea Network)和广域网(WAN,Wide Area Network),以连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本公开实施例提供的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本公开实施例中描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA,Field-Programmable Gate Array)、专用集成电路(ASIC,Application SpecificIntegrated Circuit)、专用标准产品(ASSP,Application Specific Standard Parts))、片上系统(SOC,System on Chip)、复杂可编程逻辑设备(CPLD,Complex ProgrammableLogic Device)等等。
在本公开实施例的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
至此,已经按照其功能描述了本公开实施例中涉及的终端的硬件结构,接下来对本公开实施例提供的页面刷新方法的实现过程进行说明。
图3为本公开实施例提供的页面刷新方法的一个可选的实现流程示意图,本公开实施例中的页面刷新方法可应用于各种类型的终端中,即终端可在客户端运行程序时执行本公开实施例的页面刷新方法。参见图3,本公开实施例中的页面刷新方法的实现流程,可以包括以下步骤:
步骤S301:通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件。
步骤S302:响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。
采用本公开实施例提供的技术方案,通过当前显示的页面中原生的视图组件来监听显示模式是否发生变化的事件,当监听到显示模式发生变化的事件时,响应于所监听到的事件,向目标视图组件发送通知消息。如此,能够使得目标视图组件基于接收到的通知消息,实现自主更新自身的属性特征,以使更新后的属性特征与显示模式相适配,可见,本公开实施例的技术方案,在将页面级细化成视图组件级的基础上实现页面的刷新过程,可以克服相关技术中针对每个页面需要逐一编译监测代码,来监测显示模式发生变化的缺陷,降低开发的复杂度,大大提高页面刷新的效率。
下面基于图3所示的页面刷新方法,结合附图4对本公开实施例提供的页面刷新方法的具体实现进行说明。
图4为本公开实施例提供的页面刷新方法的另一个可选的实现流程示意图,本公开实施例中的页面刷新方法可应用于各种类型的终端中,即终端在客户端运行程序时执行本公开实施例的页面刷新方法,以实现目标视图组件更新自身的属性特征。参见图4,本公开实施例中的页面刷新方法的实现流程,可以包括以下步骤:
步骤S401:通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件。
在本公开实施例中,页面的显示模式可以包括夜间模式和白天模式。可以理解,显示模式发生变化实际上是对页面的显示模式的开关进行切换,为了使页面的显示模式更加适应用户的使用需求,可以对显示的页面的背景颜色、文本字体颜色、图片颜色进行切换,以切换至与显示模式相适配的类型。例如,当页面的显示模式为白天模式时,页面的背景颜色可为白色,文本字体颜色可为黑色;当页面的显示模式由白天模式切换至夜间模式时,页面的背景颜色可为黑色,文本字体颜色可为白色。
在一些实施例中,在监听显示模式发生变化的事件之前,还可以接收触发所述显示模式发生变化的操作。在实际实施时,在一些实施例中,可采用以下方式接收触发所述显示模式发生变化的操作:响应于终端的图形界面的主题发生更新的事件,执行触发所述显示模式发生变化的指令。
具体来说,监测终端的图形界面的主题是否发生更新,当确定图形界面的主题发生更新时,可基于更新的状态与显示模式的关联,触发显示模式发生变化,以使变化后的显示模式与更新的主题适配。示例性地,当监测到终端的图形界面的主题由主题A更新为主题B,而主题B的显示状态更适合在夜间模式进行显示,因此,如果页面当前的显示模式为白天模式,则可触发页面的显示模式由白天模式切换至夜间模式,如果页面当前的显示模式为夜间模式,则可不进行显示模式的切换,而是直接在夜间模式中对更新的主题进行显示。
在另一些实施例中,可以采用以下方式接收触发所述显示模式发生变化的操作:接收由用户设置触发的操作指令,响应于所述操作指令触发所述显示模式发生变化。需要指出的是,在实际应用中,用户可依据实际需要进行设置,如设置页面的显示模式的开关发生变化,以显示夜间模式。
需要说明的是,本公开实施例中监听显示模式是否发生变化的事件的视图组件,可以是原生的视图组件库中的任一视图组件,在此不做限定。
步骤S402:将原生的视图组件替换为目标视图组件。
这里,所述目标视图组件为自定义的新的视图组件,也就是说,本公开实施例中将当前显示的页面中原生的视图组件替换为自定义的新的视图组件,通过对自定义的新的视图组件的属性特征进行更新,以达到页面刷新的效果,避免出现在每个页面中添加额外的代码逻辑,对每个页面逐一执行多步操作来完成页面刷新的问题。
在本公开实施例中,页面中原生的视图组件,可以理解为开发者在初始开发系统时,系统页面中所具有的视图组件。在实际应用中,页面中原生的视图组件,可以是通过调用内置的浏览器内核加载的页面,在该页面中所显示的视图组件,也可以是对应播放器的显示页面中的视图组件,又或者是对应社交应用软件的显示页面中的视图组件,在此不做限定。
作为示例,参见图5,图5为本公开实施例提供的浏览器被打开时页面中原生的视图组件的一个可选的显示界面示意图,该页面中包括三个视图组件,分别是文本组件(例如显示的几行文字)、可编辑输入框组件、图片组件,这三个视图组件都具备对页面中显示模式的开关变化进行监听的功能。当该页面中显示的三个视图组件中的一个或多个接收到设定指令后,响应于该设定指令,将对应接收到设定指令的原生的视图组件替换为目标视图组件。需要说明的是,用户可通过点击页面中的选项设置进行视图组件的设定,以触发设定指令。
在一些实施例中,对于将所述原生的视图组件替换为目标视图组件来说,可以采用以下方式实现:通过反射机制获取所述页面启动时原生的类加载器;基于所述原生的类加载器,将所述原生的视图组件替换为目标视图组件。
具体来说,在实际实施时,可通过如下方式获取页面启动时原生的类加载器:调用未开放的应用程序接口(API,Application Programming Interface);通过所述API,反射获取所述页面启动时对应的原生的类加载器;在获取原生的类加载器之后,可通过如下方式实现将原生的视图组件替换为目标视图组件:创建自定义的类加载器;替换所述原生的类加载器为所述自定义的类加载器,并在所述自定义的类加载器中调用类加载函数;基于所述类加载函数所加载的类的类别,确定与所述类别适配的目标类;替换所述类加载函数所加载的类为所述目标类,以使所述原生的视图组件替换为目标视图组件。通常在客户端的应用程序运行启动时,通过调用未开放的API获取当前运行时系统中原生的类加载器,将创建的自定义的类加载器替换原生的类加载器,通过自定义的类加载器中加载的类的替换,以实现将原生的视图组件替换为目标视图组件的目的。
需要说明的是,示例性地,如果类加载函数所加载的类为A,则确定与A适配的类为A1,则将A替换为A1,这样,通过类替换的方式实现自定义的视图组件替换系统中原生的视图组件的目的。在一实施例中,对于将原生的视图组件替换为目标视图组件而言,可以是在终端每次加载运行程序时进行替换。
步骤S403:响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。
在一些实施例中,对于向目标视图组件发送通知消息来说,可以采用以下方式来实现:监测所述当前显示的页面对应的系统时钟;当所述系统时钟到达设定的更新时间时,向所述目标视图组件发送通知消息,以使所述目标视图组件基于所述通知消息更新自身的属性特征;其中,所述目标视图组件的属性特征包括与所述目标视图组件关联的颜色属性特征。这里,与目标视图组件关联的颜色属性特征包括以下至少之一:页面背景颜色;文本字体颜色;图片颜色;光标颜色等。本公开实施例可以由原生的视图组件库中除被替换的原生视图组件外的其他原生视图组件,来监测页面对应的系统时钟的变化,即系统时钟到达设定的更新时间时,向替换后的新的目标视图组件发送通知消息,以使得目标视图组件能够基于接收到的通知消息更新自身的属性特征,可见,通过对系统时钟进行监测,可以有效控制对目标视图组件的属性特征进行更新的时机,以满足不同用户对页面刷新的时间需求。
举例来说,假设由图5中的文本组件(该文本组件为原生的视图组件库中的组件,该原生的视图组件库还包括图5所示的可编辑输入框组件和图片组件)来监听显示模式是否发生变化的事件,当该文本组件监听到显示模式发生变化的事件后,将该文本组件替换为新的目标视图组件,以及响应于所监听到的事件,由原生的视图组件库中的可编辑输入框组件来监测页面对应的系统时钟的变化,即系统时钟到达设定的更新时间时,可编辑输入框组件向替换后的新的目标视图组件发送通知消息,以使得目标视图组件能够基于接收到的通知消息更新自身的属性特征,比如,目标视图组件更新自身的颜色属性特征。
在一些实施例中,就所述目标视图组件基于所述通知消息更新自身的属性特征来说,可采用以下方式中的至少之一实现:基于所述通知消息的指示,对本地终端所显示的页面中的所述目标视图组件的属性特征进行更新;或者,基于所述通知消息的指示,对异地终端所显示的页面中的所述目标视图组件的属性特征进行更新,所述异地终端为与所述本地终端关联到同一社交网络账号下的终端。可见,本公开实施例可以对本地终端显示页面中的目标视图组件的属性特征进行更新,也可以预先通过扫码等方式,将多个终端绑定到同一个社交网络账号如用户账号下,这样,位于同一个用户账号下的多个终端彼此之间可以共享目标视图组件,以对异地终端显示页面中的目标视图组件的属性特征进行更新,增加更新目标视图组件的属性特征的途径,提高页面刷新的效率。
作为示例,以图5中加载的原生的视图组件为例,对本公开实施例提供的页面刷新方法的实现进行说明。图中显示的文本组件、可编辑输入框组件、图片组件均是原生的组件,且都具备对显示模式的开关变化进行监听的功能,首先,由当前原生的视图组件监听页面中显示模式的开关是否发生变化,当显示模式的开关发生变化时,即表示夜间模式,此时,向目标视图组件(这里的目标视图组件可以是在响应于针对原生的视图组件的设定指令后,将原生的视图组件进行替换后的视图组件)反馈显示模式开关发生变化的通知消息,目标视图组件接收到反馈的通知消息后,将自动更新自身的颜色属性特征,比如对页面背景颜色、文本字体颜色、图片颜色进行更新,以适配在夜间模式中显示。在上述过程中,对于开发者而言,显示模式的开关变化的监听,以及开关发生变化的通知是不透明的、无感知的,因此,开发者不需要关心开关的变化,可以提高开发效率。
接下来继续参见图6,对本公开实施例提供的页面刷新方法的具体实现进行说明。图6为本公开实施例提供的页面刷新方法的另一个可选的实现流程示意图,结合图6示出的步骤进行说明。对于下文步骤说明中未尽的细节,可以参考上文而理解。
步骤S601:终端加载当前显示的页面中原生的视图组件。
步骤S602:通过原生的视图组件监听显示模式发生变化的事件。
步骤S603:通过反射机制获取页面启动时原生的类加载器。
步骤S604:基于原生的类加载器,将原生的视图组件替换为目标视图组件。
这里,所述目标视图组件为自定义的新的视图组件。本公开实施例在客户端的应用程序运行启动时,通过调用未开放的API获取当前运行时系统中原生的类加载器,将创建的自定义的类加载器替换原生的类加载器,通过自定义的类加载器中加载的类的替换,以实现将原生的视图组件替换为目标视图组件的目的。
步骤S605:响应于所监听到的事件,原生的视图组件监测当前显示的页面对应的系统时钟。
步骤S606:当系统时钟到达设定的更新时间时,向目标视图组件发送通知消息,以使目标视图组件基于通知消息更新自身的属性特征。
这里,所述目标视图组件的属性特征包括与目标视图组件关联的颜色属性特征。其中,与目标视图组件关联的颜色属性特征包括以下至少之一:页面背景颜色;文本字体颜色;图片颜色;光标颜色等。
采用本公开实施例所提供的页面刷新方法,通过将页面级细化成视图组件级,通过当前显示的页面中原生的视图组件来监测页面中显示模式发生变化的事件,当确定显示模式发生变化时,响应于所监听到的事件,向替换后的新的目标视图组件发送通知消息,这样,可以在屏蔽原生的视图组件的监听功能的基础上,使得目标视图组件基于通知消息的指示可以实现对自身的属性特征进行更新,以使更新后的目标视图组件的属性特征与显示模式相适配,从而实现页面的实时刷新。本公开实施例的技术方案,可以克服相关技术中针对每个页面需要逐一编译监测代码,来监测显示模式的开关变化的缺陷,降低开发的复杂度,大大提高页面刷新的效率。
接下来对本公开实施例提供的页面刷新装置的软件实现进行说明。图7为本公开实施例提供的页面刷新装置的一个可选的组成结构示意图,参见图7,所述页面刷新装置70包括:监听单元71和发送单元72。下面对上述各模块的功能进行说明。
监听单元71,用于通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件;
发送单元72,用于响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。
在一些实施例中,所述装置还可以包括:
替换单元,用于将所述原生的视图组件替换为目标视图组件,所述目标视图组件为自定义的新的视图组件。
在一些实施例中,所述替换单元具体可包括:
获取子单元,用于通过反射机制获取所述页面启动时原生的类加载器;
替换子单元,用于基于所述原生的类加载器,将所述原生的视图组件替换为目标视图组件。
在一些实施例中,对于所述替换子单元基于所述原生的类加载器,将所述原生的视图组件替换为目标视图组件来说,可采用以下方式实现:
创建自定义的类加载器;
替换所述原生的类加载器为所述自定义的类加载器,并在所述自定义的类加载器中调用类加载函数;
基于所述类加载函数所加载的类的类别,确定与所述类别适配的目标类;
替换所述类加载函数所加载的类为所述目标类,以使所述原生的视图组件替换为目标视图组件。
在一些实施例中,对于所述获取子单元通过反射机制获取所述页面启动时原生的类加载器来说,可采用以下方式实现:
调用未开放的API;通过所述API,反射获取所述页面启动时对应的原生的类加载器。
在一些实施例中,所述装置还可以包括:
接收单元,用于在所述监听单元监听显示模式发生变化的事件之前,接收触发所述显示模式发生变化的操作。
在一些实施例中,对于所述接收单元接收触发所述显示模式发生变化的操作来说,可采用以下方式实现:响应于终端的图形界面的主题发生更新的事件,执行触发所述显示模式发生变化的指令。
当然,所述接收单元也可采用以下方式接收触发所述显示模式发生变化的操作:接收由用户设置触发的操作指令,响应于所述操作指令触发所述显示模式发生变化。
在一些实施例中,对于所述发送单元向目标视图组件发送通知消息来说,可以采用以下方式实现:监测所述当前显示的页面对应的系统时钟;当所述系统时钟到达设定的更新时间时,向所述目标视图组件发送通知消息,以使所述目标视图组件基于所述通知消息更新自身的属性特征;其中,所述目标视图组件的属性特征包括与所述目标视图组件关联的颜色属性特征。
这里需要指出的是:以上涉及页面刷新装置的描述,与上述页面刷新方法的描述是类似的,同方法的有益效果描述,在此不做赘述。在本公开所述的页面刷新装置实施例中,对于关于模块的功能说明中未尽的细节,可以参考本公开中页面刷新方法实施例的描述而理解。
以上描述仅为本公开的实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (18)

1.一种页面刷新方法,其特征在于,所述方法包括:
通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件;
响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述向目标视图组件发送通知消息之前,将所述原生的视图组件替换为目标视图组件,所述目标视图组件为自定义的新的视图组件。
3.根据权利要求2所述的方法,其特征在于,所述将所述原生的视图组件替换为目标视图组件,包括:
通过反射机制获取所述页面启动时原生的类加载器;
基于所述原生的类加载器,将所述原生的视图组件替换为目标视图组件。
4.根据权利要求3所述的方法,其特征在于,所述基于所述原生的类加载器,将所述原生的视图组件替换为目标视图组件,包括:
创建自定义的类加载器;
替换所述原生的类加载器为所述自定义的类加载器,并在所述自定义的类加载器中调用类加载函数;
基于所述类加载函数所加载的类的类别,确定与所述类别适配的目标类;
替换所述类加载函数所加载的类为所述目标类,以使所述原生的视图组件替换为目标视图组件。
5.根据权利要求3所述的方法,其特征在于,所述通过反射机制获取所述页面启动时原生的类加载器,包括:
调用未开放的应用程序接口API;
通过所述API,反射获取所述页面启动时对应的原生的类加载器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述监听显示模式发生变化的事件之前,接收触发所述显示模式发生变化的操作。
7.根据权利要求6所述的方法,其特征在于,所述接收触发所述显示模式发生变化的操作,包括:
响应于终端的图形界面的主题发生更新的事件,执行触发所述显示模式发生变化的指令。
8.根据权利要求1所述的方法,其特征在于,所述向目标视图组件发送通知消息,包括:
监测所述当前显示的页面对应的系统时钟;
当所述系统时钟到达设定的更新时间时,向所述目标视图组件发送通知消息,以使所述目标视图组件基于所述通知消息更新自身的属性特征;
其中,所述目标视图组件的属性特征包括与所述目标视图组件关联的颜色属性特征。
9.一种页面刷新装置,其特征在于,所述装置包括:监听单元和发送单元;其中,
所述监听单元,用于通过当前显示的页面中原生的视图组件监听显示模式发生变化的事件;
所述发送单元,用于响应于所监听到的事件,向目标视图组件发送通知消息,所述通知消息用于指示更新所述目标视图组件的属性特征,以使更新后的所述目标视图组件的属性特征与所述显示模式相适配。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
替换单元,用于在所述发送单元向目标视图组件发送通知消息之前,将所述原生的视图组件替换为目标视图组件,所述目标视图组件为自定义的新的视图组件。
11.根据权利要求10所述的装置,其特征在于,所述替换单元,包括:
获取子单元,用于通过反射机制获取所述页面启动时原生的类加载器;
替换子单元,用于基于所述原生的类加载器,将所述原生的视图组件替换为目标视图组件。
12.根据权利要求11所述的装置,其特征在于,所述替换子单元,具体用于:
创建自定义的类加载器;
替换所述原生的类加载器为所述自定义的类加载器,并在所述自定义的类加载器中调用类加载函数;
基于所述类加载函数所加载的类的类别,确定与所述类别适配的目标类;
替换所述类加载函数所加载的类为所述目标类,以使所述原生的视图组件替换为目标视图组件。
13.根据权利要求11所述的装置,其特征在于,所述获取子单元,具体用于:
调用未开放的应用程序接口API;
通过所述API,反射获取所述页面启动时对应的原生的类加载器。
14.根据权利要求9所述的装置,其特征在于,所述装置还包括:
接收单元,用于在所述监听单元监听显示模式发生变化的事件之前,接收触发所述显示模式发生变化的操作。
15.根据权利要求14所述的装置,其特征在于,所述接收单元,具体用于:
响应于终端的图形界面的主题发生更新的事件,执行触发所述显示模式发生变化的指令。
16.根据权利要求9所述的装置,其特征在于,所述发送单元,具体用于:
监测所述当前显示的页面对应的系统时钟;
当所述系统时钟到达设定的更新时间时,向所述目标视图组件发送通知消息,以使所述目标视图组件基于所述通知消息更新自身的属性特征;
其中,所述目标视图组件的属性特征包括与所述目标视图组件关联的颜色属性特征。
17.一种终端,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述可执行指令时,实现如权利要求1至8任一项所述的页面刷新方法。
18.一种存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如权利要求1至8任一项所述的页面刷新方法。
CN201910600961.9A 2019-07-04 2019-07-04 一种页面刷新方法、装置、终端及存储介质 Pending CN110413913A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910600961.9A CN110413913A (zh) 2019-07-04 2019-07-04 一种页面刷新方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910600961.9A CN110413913A (zh) 2019-07-04 2019-07-04 一种页面刷新方法、装置、终端及存储介质

Publications (1)

Publication Number Publication Date
CN110413913A true CN110413913A (zh) 2019-11-05

Family

ID=68360270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910600961.9A Pending CN110413913A (zh) 2019-07-04 2019-07-04 一种页面刷新方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN110413913A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259291A (zh) * 2020-01-19 2020-06-09 北京无限光场科技有限公司 视图展示方法、装置和电子设备
CN111367606A (zh) * 2020-03-03 2020-07-03 北京奇艺世纪科技有限公司 一种应用程序页面的显示方法、装置、终端及介质
CN111475238A (zh) * 2020-03-13 2020-07-31 五八有限公司 一种页面处理方法、装置、电子设备及存储介质
CN112612389A (zh) * 2020-12-25 2021-04-06 珠海金山网络游戏科技有限公司 滑动窗口中对象的显示系统及方法
CN112988291A (zh) * 2019-12-17 2021-06-18 腾讯科技(深圳)有限公司 页面事件管理方法、装置、计算机可读介质及电子设备
CN113434176A (zh) * 2021-06-29 2021-09-24 青岛海尔科技有限公司 数据更新处理方法、装置、存储介质及电子装置
CN114416229A (zh) * 2021-12-16 2022-04-29 青岛海尔科技有限公司 界面的显示方法、装置、终端设备和服务器
CN114816609A (zh) * 2021-01-29 2022-07-29 北京字节跳动网络技术有限公司 展示窗口的方法、装置、电子设备及计算机可读存储介质
WO2023284442A1 (zh) * 2021-07-14 2023-01-19 北京字节跳动网络技术有限公司 一种页面处理方法、装置、电子设备及可读存储介质
CN115776516A (zh) * 2023-02-13 2023-03-10 天翼云科技有限公司 页面刷新方法及其装置、电子设备
CN114816609B (zh) * 2021-01-29 2024-05-28 抖音视界有限公司 展示窗口的方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685451A (zh) * 2008-09-27 2010-03-31 国际商业机器公司 监听浏览器中的事件的方法和事件监听装置及浏览器设备
KR20140021413A (ko) * 2012-08-10 2014-02-20 인포뱅크 주식회사 휴대용 단말기에서의 바탕화면 아이콘 제어 방법 및 장치
CN108228266A (zh) * 2016-12-14 2018-06-29 阿里巴巴集团控股有限公司 一种Android插件框架下不同插件间启动Fragment组件的方法和装置
CN109614186A (zh) * 2018-11-29 2019-04-12 深圳市酷达通讯有限公司 应用程序色彩切换方法、系统及终端设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685451A (zh) * 2008-09-27 2010-03-31 国际商业机器公司 监听浏览器中的事件的方法和事件监听装置及浏览器设备
KR20140021413A (ko) * 2012-08-10 2014-02-20 인포뱅크 주식회사 휴대용 단말기에서의 바탕화면 아이콘 제어 방법 및 장치
CN108228266A (zh) * 2016-12-14 2018-06-29 阿里巴巴集团控股有限公司 一种Android插件框架下不同插件间启动Fragment组件的方法和装置
CN109614186A (zh) * 2018-11-29 2019-04-12 深圳市酷达通讯有限公司 应用程序色彩切换方法、系统及终端设备

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988291B (zh) * 2019-12-17 2024-05-03 腾讯科技(深圳)有限公司 页面事件管理方法、装置、计算机可读介质及电子设备
CN112988291A (zh) * 2019-12-17 2021-06-18 腾讯科技(深圳)有限公司 页面事件管理方法、装置、计算机可读介质及电子设备
CN111259291A (zh) * 2020-01-19 2020-06-09 北京无限光场科技有限公司 视图展示方法、装置和电子设备
CN111259291B (zh) * 2020-01-19 2024-01-30 北京有竹居网络技术有限公司 视图展示方法、装置和电子设备
CN111367606A (zh) * 2020-03-03 2020-07-03 北京奇艺世纪科技有限公司 一种应用程序页面的显示方法、装置、终端及介质
CN111475238B (zh) * 2020-03-13 2023-12-05 五八有限公司 一种页面处理方法、装置、电子设备及存储介质
CN111475238A (zh) * 2020-03-13 2020-07-31 五八有限公司 一种页面处理方法、装置、电子设备及存储介质
CN112612389B (zh) * 2020-12-25 2022-06-10 珠海金山网络游戏科技有限公司 滑动窗口中对象的显示系统及方法
CN112612389A (zh) * 2020-12-25 2021-04-06 珠海金山网络游戏科技有限公司 滑动窗口中对象的显示系统及方法
CN114816609A (zh) * 2021-01-29 2022-07-29 北京字节跳动网络技术有限公司 展示窗口的方法、装置、电子设备及计算机可读存储介质
CN114816609B (zh) * 2021-01-29 2024-05-28 抖音视界有限公司 展示窗口的方法、装置、电子设备及计算机可读存储介质
CN113434176A (zh) * 2021-06-29 2021-09-24 青岛海尔科技有限公司 数据更新处理方法、装置、存储介质及电子装置
WO2023284442A1 (zh) * 2021-07-14 2023-01-19 北京字节跳动网络技术有限公司 一种页面处理方法、装置、电子设备及可读存储介质
CN114416229A (zh) * 2021-12-16 2022-04-29 青岛海尔科技有限公司 界面的显示方法、装置、终端设备和服务器
CN115776516A (zh) * 2023-02-13 2023-03-10 天翼云科技有限公司 页面刷新方法及其装置、电子设备
CN115776516B (zh) * 2023-02-13 2023-04-14 天翼云科技有限公司 页面刷新方法及其装置、电子设备

Similar Documents

Publication Publication Date Title
CN110413913A (zh) 一种页面刷新方法、装置、终端及存储介质
CN109388453A (zh) 应用页面的展示方法、装置、存储介质和电子设备
CN109523187A (zh) 任务调度方法、装置和设备
CN108614774A (zh) 自动化测试方法和装置
WO2021223752A1 (zh) 展示方法、装置和电子设备
CN109871388A (zh) 数据缓存方法、装置、终电子设备及存储介质
CN110275723A (zh) 获取资源的方法、装置、电子设备及可读介质
CN110427150A (zh) 应用程序的显示方法、装置、电子设备及计算机可读介质
CN110471738A (zh) 应用程序的主题切换方法、装置、电子设备及存储介质
CN108549568A (zh) 应用入口处理方法、装置、存储介质及电子设备
CN110209315A (zh) 用户界面中字符的显示方法、装置、电子设备及存储介质
EP4137944A1 (en) Method and apparatus for displaying interaction message of application, and readable storage medium
CN111953648A (zh) 基于区块链预言机的数据处理方法、装置及电子设备
CN110457154A (zh) 异常服务处理方法及装置、存储介质、通信终端
CN111796820A (zh) 基于集成化组件构建前端页面的方法、装置及电子设备
CN105677697A (zh) 提供兴趣点的方法及其电子装置
CN110489165A (zh) 获取调用栈栈帧指令偏移的方法、装置、介质和设备
CN109471647A (zh) 一种数据的更新方法、装置、电子设备及可读介质
CN110275736A (zh) 获取应用程序的运行数据方法、装置、设备及可读介质
CN110837334A (zh) 用于交互控制的方法、装置、终端及存储介质
CN108475163A (zh) 用于合成屏幕的方法和电子设备
CN110045952A (zh) 代码调用方法与装置
KR102276230B1 (ko) 유한 상태기계 생성 방법, 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램
CN110377362A (zh) 清理应用程序的方法、装置、终端及存储介质
CN110502891A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191105