CN115113898A - 微应用的动态更新方法、装置、计算机设备和存储介质 - Google Patents

微应用的动态更新方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115113898A
CN115113898A CN202210535059.5A CN202210535059A CN115113898A CN 115113898 A CN115113898 A CN 115113898A CN 202210535059 A CN202210535059 A CN 202210535059A CN 115113898 A CN115113898 A CN 115113898A
Authority
CN
China
Prior art keywords
application
micro
target
program
micro application
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
CN202210535059.5A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210535059.5A priority Critical patent/CN115113898A/zh
Publication of CN115113898A publication Critical patent/CN115113898A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种微应用的动态更新方法、装置、计算机设备、存储介质和计算机程序产品。所述方法可应用于互联网和车联网技术领域,所述微应用可以是移动终端或车载设备上的应用程序的微应用,所述方法包括:在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;根据所述加载事件确定待加载的微应用的文件类型和版本信息;基于所述版本信息和所述文件类型获得微应用索引地址;依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;加载所述微应用资源至所述目标应用程序。采用本方法能够提高微应用的更新效率。

Description

微应用的动态更新方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种微应用的动态更新方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,终端应用被广泛使用,为了修复终端应用中的安全漏洞、或者为了在终端应用中增加新功能以提升终端应用的交互体验,需要经常对终端应用进行更新。传统技术中,当发布了针对终端应用的新版本可执行程序时,根据新发布的可执行程序对终端应用进行整体更新。但是,当对终端应用中的某个模块进行修复或添加新功能时,需要针对终端应用整体发布新版本的更新文件,即需要通过对终端应用整体进行更新来实现对部分模块的更新,导致更新效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高更新效率的微应用的动态更新方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种微应用的动态更新方法。所述方法包括:
在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;
根据所述加载事件确定待加载的微应用的文件类型和版本信息;
基于所述版本信息和所述文件类型获得微应用索引地址;
依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;
加载所述微应用资源至所述目标应用程序。
第二方面,本申请还提供了一种微应用的动态更新装置。所述装置包括:
检测模块,用于在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;
确定模块,用于根据所述加载事件确定待加载的微应用的文件类型和版本信息;
获得模块,用于基于所述版本信息和所述文件类型获得微应用索引地址;
获取模块,用于依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;
加载模块,用于加载所述微应用资源至所述目标应用程序。
在一个实施例中,所述确定模块,还用于:
基于所述加载事件获取微应用场景标识;
根据所述微应用场景标识从配置平台读取微应用配置信息;
若根据所述微应用配置信息确定加载所述微应用,确定所述微应用的文件类型和版本信息。
在一个实施例中,所述确定模块,还用于:
在所述微应用配置信息中提取所述微应用的灰度对象标识集;
获取在所述目标应用程序中注册的目标对象标识;
若所述灰度对象标识集包含所述目标对象标识,则确定加载所述微应用。
在一个实施例中,所述装置还包括:
所述获取模块,还用于若根据所述微应用配置信息确定不加载所述微应用,获取所述目标应用程序的与所述微应用功能一致的目标组件;
所述加载模块,还用于将与所述微应用功能一致的目标组件加载至所述目标应用程序。
在一个实施例中,所述确定模块,还用于:
确定所述微应用的文件类型,以及在所述微应用配置信息中确定所述微应用的版本信息;
所述获得模块,还用于:
在所述微应用配置信息中确定所述微应用的应用标识;
基于所述版本信息、所述文件类型和所述应用标识生成微应用索引地址。
在一个实施例中,所述目标应用程序是不同端的应用程序,包括原生应用程序、小程序或公众号应用;所述装置还包括:
所述获取模块,还用于获取所述目标应用程序中运行更新版本的所述微应用对应的环境变量;根据所述环境变量获取不同端应用程序对应的工具包;
第一调用模块,用于基于所述工具包调用在通用基类中定义的业务程序;
执行模块,用于通过运行所调用的业务程序执行应用业务。
在一个实施例中,所述装置还包括:
所述获取模块,还用于获取所述目标应用程序中运行更新版本的所述微应用对应的环境变量,以及所述更新版本的所述微应用在运行时生成的运行日志;
上报模块,用于根据所述环境变量触发对应的日志上报事件,以通过所述日志上报事件将所述运行日志上报至所述环境变量对应的日志空间。
在一个实施例中,更新版本的所述微应用包括至少一个组件;所述装置还包括:
第二调用模块,用于当所述组件接收到交互指令时,根据所述交互指令调用共享交互程序;
处理模块,用于通过所述共享交互程序处理所述交互指令,得到处理结果;
展示模块,用于基于所述处理结果展示所述组件对应的交互界面。
在一个实施例中,所述加载模块,还用于:
通过微前端框架接入所述微应用资源至所述目标应用程序;
对所述微应用资源进行解析,以实现更新版本的所述微应用和所述目标应用程序之间的融合。
在一个实施例中,所述加载模块,还用于:
对所述微应用资源进行解析,得到解析数据;
对所述解析数据进行渲染,得到微应用页面;
通过所述目标应用程序展示所述微应用页面,实现更新版本的所述微应用和所述目标应用程序之间的融合。
在一个实施例中,所述装置还包括:
所述检测模块,还用于检测所述微应用页面的页面关闭事件;
移除模块,用于响应于所述页面关闭事件,将所述微应用资源从所述目标应用程序中移除。
在一个实施例中,所述装置还包括:
所述检测模块,还用于检测外部应用发起的作用于更新版本的所述微应用的通信请求;所述更新版本的所述微应用与外部应用之间相互隔离;
建立模块,用于建立所述外部应用与更新版本的所述微应用之间的应用通信通道;
传输模块,用于基于所述应用通信通道,传输所述外部应用与更新版本的所述微应用之间的交互数据。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;
根据所述加载事件确定待加载的微应用的文件类型和版本信息;
基于所述版本信息和所述文件类型获得微应用索引地址;
依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;
加载所述微应用资源至所述目标应用程序。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;
根据所述加载事件确定待加载的微应用的文件类型和版本信息;
基于所述版本信息和所述文件类型获得微应用索引地址;
依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;
加载所述微应用资源至所述目标应用程序。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;
根据所述加载事件确定待加载的微应用的文件类型和版本信息;
基于所述版本信息和所述文件类型获得微应用索引地址;
依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;
加载所述微应用资源至所述目标应用程序。
上述微应用的动态更新方法、装置、计算机设备、存储介质和计算机程序产品,在运行目标应用程序的过程中,检测目标应用程序的加载事件,根据加载事件确定待加载的微应用的文件类型和版本信息。从而可以基于版本信息和文件类型获得微应用索引地址,并依据微应用索引地址,从应用平台获取版本信息对应的、更新版本的微应用资源,然后加载微应用资源至目标应用程序,以实现微应用和目标应用程序的融合。因此,终端可以在目标应用程序运行过程中,可以将更新版本的微应用动态加载至目标应用程序,并将目标应用程序与微应用进行融合,不需要对目标应用程序发布更新版本并对目标应用程序进行整体更新,即可实现目标应用程序中部分模块的更新,提高了更新效率。进一步地,由于目标应用程序可以在运行期与其他应用程序共享微应用,微应用可以在不同技术栈应用程序间复用,从而不需要针对每种应用程序开发一套微应用,实现了不同应用程序间的模块共享。此外,由于目标应用程序可以解构成多个独立的微应用,多个独立的微应用间耦合度低,可以并行的进行开发,提高了开发效率。
附图说明
图1为一个实施例中微应用的动态更新方法的应用环境图;
图2为一个实施例中微应用的动态更新方法的流程示意图;
图3a为一个实施例中原生应用程序中微应用的示意图;
图3b为一个实施例中小程序中微应用的示意图;
图3c为一个实施例中社交应用版小程序中微应用的示意图;
图4为一个实施例中不同技术栈应用程序共享微应用的示意图;
图5为一个实施例中多个微应用在线合成目标应用程序的示意图;
图6为一个实施例中发布微应用的示意图;
图7为一个实施例中生成微应用索引地址方法的流程示意图;
图8为一个实施例中上报运行日志方法的流程示意图;
图9为一个实施例中微应用中组件的示意图;
图10为一个实施例中将微应用与目标应用程序融合方法的流程示意图;
图11为一个实施例中微应用运行环境的示意图;
图12为一个实施例中微应用的动态更新方法的原理示意图;
图13为另一个实施例中微应用的动态更新方法的流程示意图;
图14为一个实施例中微应用的动态更新装置的结构框图;
图15为另一个实施例中微应用的动态更新装置的结构框图;
图16为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的微应用的动态更新方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与应用平台104进行通信。终端102在运行目标应用程序的过程中,检测目标应用程序的加载事件,根据加载事件确定待加载的微应用的文件类型和版本信息。基于版本信息和文件类型获得微应用索引地址,依据微应用索引地址,从应用平台104获取版本信息对应的微应用资源,微应用资源包括发布至应用平台的且为更新版本的微应用对应的应用文件。加载微应用资源至目标应用程序。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。应用平台104可以是独立的物理服务器,也可以是区块链***中的多个服务节点所组成的服务器集群,各服务节点之间形成组成点对点(P2P,Peer ToPeer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。此外,应用平台104也可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个实施例中,如图2所示,提供了一种微应用的动态更新方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
S202,在运行目标应用程序的过程中,检测目标应用程序的加载事件。
其中,目标应用程序为能够实现各种功能的应用程序,可以是前端应用程序,包括通信应用、社交应用、娱乐应用序、办公应用序或者资源交换应用等。目标应用程序可以是基于各种不同技术栈实现的完整形态的应用程序,例如,安卓或者IOS(Iphone OperationSystem)等各种操作***中部署的原生应用程序、不需要下载安装即可使用的小程序或者基于HTML5(HyperText Mark-up Language 5,超文本标记语言5)框架的公众号应用程序等。
加载事件是用于在目标应用程序中加载应用模块的事件,所加载的应用模块可以是微应用、组件或者其他形式的可执行代码块。例如,加载事件可以是在社交应用程序中加载基金吧微应用的事件;又例如,加载事件可以是在小程序中加载评论区微应用的事件。加载事件可以是在目标应用程序的页面中触发的事件。例如,加载事件可以是通过点击目标应用程序页面中控件触发的事件。例如,如图3a所示,加载事件可以是通过点击目标应用程序页面中的“基金”控件触发的加载事件,响应于该加载事件,加载基金吧微应用。
在一个实施例中,加载事件为通过页面切换操作触发的事件;S202具体包括:在运行目标应用程序的过程中,检测通过目标应用程序中控件触发的页面切换操作。其中,页面切换操作为指示目标应用程序切换到微应用页面的操作。当检测到切换至微应用页面的页面切换操作时,确定检测到加载事件,根据加载事件加载微应用。因此终端在运行目标应用程序时,不需要目标应用程序所包含的微应用进行全量加载,而只需在切换至某个微应用页面时,加载对应的微应用资源,从而可以实现按需加载,提高了加载效率。
S204,根据加载事件确定待加载的微应用的文件类型和版本信息。
其中,微应用是基于微前端框架的独立应用,可以被独立开发及部署,并且可以被各种不同技术栈的目标应用程序复用。例如,如图3a所示,微应用可以为自选股应用程序中的基金吧微应用;又例如,如图3b所示,微应用可以为自选股小程序中的选股吧微应用;又例如,如图3c所示,微应用可以为社交应用版自选股的讨论区微应用。微前端为由多个独立的微应用组成的Web(World Wide Web,全球广域网)前端应用,支持对各个微应用进行独立开发及部署。微应用的生命周期包括在打开微应用页面时加载微应用资源、对微应用资源进行解析,并进行页面渲染、以及在关闭微应用页面时移除微应用资源。终端可以通过微前端框架管理微应用生命周期,并为每个微应用提供独立的、与外部应用隔离的运行环境。
其中,文件类型为微应用的入口文件类型,可以是HTML类型或者JS(JavaScript)类型。版本信息为待加载的微应用的更新版本的信息,可以为待加载的微应用的版本标识或者版本号等。例如,版本信息为“基金吧V2.0”。
在一个实施例中,基于一套源代码实现的微应用可以被多个不同技术栈的目标应用程序共享,在各不同目标应用程序中具有相似的产品表现形式。例如,如图4所示,微应用一和微应用二均为独立开发与独立部署的微应用,微应用一与微应用二可以在线集成至操作***中的原生应用程序,或者在线集成至公众号应用,或者也可以在线集成至小程序。操作***中的原生应用程序、公众号应用和小程序可以共享微应用一或者微应用二。
在一个实施例中,目标应用程序中待加载的微应用可以为多个,每个待加载的微应用实现目标应用程序的部分功能。例如,如图5所示,微应用一至微应用四均为独立开发与部署的微应用,通过微应用一至微应用四可以在线合成完整的目标应用程序。目标应用程序通过微前端框架为微应用提供运行环境,使各微应用相互隔离。
在一个实施例中,S204具体包括:响应于加载事件,从配置平台读取微应用配置信息;从微应用配置信息中提取微应用的文件类型和版本信息。
S206,基于版本信息和文件类型获得微应用索引地址。
其中,微应用索引地址是微应用资源的网络地址,可以是基于网络协议确定的网络地址,网络协议可以是HTTP(Hyper Text Transfer Protocol,超文本传输)协议或者HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,超文本安全传输)协议。例如,微应用索引地址可以为https://wzq.../micro-app/v0.6.9/index.html。
在一个实施例中,S206具体包括:根据网络地址格式,对版本信息、文件类型进行拼装,得到微应用索引地址。其中,网络地址格式可以是根据网络协议确定的地址格式。
S208,依据微应用索引地址,从应用平台获取版本信息对应的微应用资源;微应用资源包括发布至应用平台的且为更新版本的微应用对应的应用文件。
其中,应用平台是用于发布微应用资源的平台,可以是CDN(Content DeliveryNetwork,内容分发网络)平台。CDN平台是在现有网络的基础上构建的智能虚拟网络,依靠部署在各地的边缘服务器、中心平台的负载均衡功能模块、内容分发功能模块、调度功能模块进行内容分发,降低了网络拥塞,提高了对访问请求的响应速度。微应用资源是运行微应用所需的资源,包括各种格式的可执行文件,例如,Java格式的文件、CSS(Cascading StyleSheets,层叠样式表)格式的文件等。
在一个实施例中,如图6所示,S208之前还包括:通过调式工具对微应用的源代码进行调式,在调式通过后,将源代码发送至编译平台。通过编译平台对源代码进行编译,得到微应用资源的可执行文件。最后,将微应用资源发布至CDN应用平台,同时将微应用资源对应的版本信息发送至配置平台。配置平台将更新版本的微应用对应的版本信息写入配置表。
S210,加载微应用资源至目标应用程序。
终端在获取微应用资源时,将微应用资源加载至目标应用程序,并通过微前端框架实现微应用资源与目标应用程序的融合。
在一个实施例中,S210之后还包括:检测微应用页面的页面关闭事件;响应于页面关闭事件,将微应用资源从目标应用程序中移除。其中,页面关闭事件是用于指示终端关闭微应用页面的事件。当检测到微应用页面的页面关闭事件时,将微应用资源从目标应用程序中移除,微应用的生命周期结束。在检测到页面关闭事件时,将微应用资源从目标应用程序中移除,可以节省目标应用程序的内存空间,提高目标应用程序的运行速度。
在一个实施例中,S210具体包括:在加载微应用资源至目标应用程序的过程中,获取加载进度;在目标应用程序的页面中展示加载进度条,并根据加载进度对加载进度条的长度进行调整。
上述实施例中,在运行目标应用程序的过程中,检测目标应用程序的加载事件,根据加载事件确定待加载的微应用的文件类型和版本信息。从而可以基于版本信息和文件类型获得微应用索引地址,并依据微应用索引地址,从应用平台获取版本信息对应的、更新版本的微应用资源,然后加载微应用资源至目标应用程序,以实现微应用和目标应用程序的融合。因此,终端可以在目标应用程序运行过程中,可以将更新版本的微应用动态加载至目标应用程序,并将目标应用程序与微应用进行融合,不需要对目标应用程序发布更新版本并对目标应用程序进行整体更新,即可实现目标应用程序中部分模块的更新,提高了更新效率。进一步地,由于目标应用程序可以在运行期与其他应用程序共享微应用,微应用可以在不同技术栈应用程序间复用,从而不需要针对每种应用程序开发一套微应用,实现了不同应用程序间的模块共享。此外,由于目标应用程序可以解构成多个独立的微应用,多个独立的微应用间耦合度低,可以并行的进行开发,提高了开发效率。
在一个实施例中,如图6所示,S204具体包括如下步骤:
S602,基于加载事件获取微应用场景标识。
其中,微应用场景标识为微应用的应用场景标识,可以由数字、字母、字符或者特殊符号等组成。微应用的应用场景包括在各种目标应用程序中使用的场景。由于针对微应用的各应用场景,可能会使用不同更新版本的微应用,例如,针对在社交应用中使用的应用场景,使用第一版微应用;针对在通信应用中使用的应用场景,使用第二版微应用。终端在检测到加载事件时,根据加载事件获取微应用场景标识。
在一个实施例中,S602具体包括:终端基于加载事件获取微应用页面的网络地址,根据微应用页面的网络地址确定微应用场景标识。或者,终端基于加载事件获取浏览器的UA(User Agent,用户代理)值,根据UA值确定微应用场景标识。
S604,根据微应用场景标识从配置平台读取微应用配置信息。
其中,配置平台是用于管理微应用配置信息的平台。微应用配置信息为用于对微应用进行配置的信息,包括微应用对应的版本信息、微应用场景标识、用户标识等,可以存储在配置平台的配置表中。
S606,若根据微应用配置信息确定加载微应用,确定微应用的文件类型和版本信息。
终端从配置平台读取微应用配置信息后,根据微应用配置信息判断是否加载微应用,若根据微应用配置信息确定加载微应用,确定微应用的文件类型和版本信息。
在一个实施例中,S606具体包括:在微应用配置信息中提取更新版本微应用的版本号,若版本号对应的应用状态为可用状态,确定加载微应用。在发布更新版本的微应用之后,对更新版本的微应用进行测试,若测试中发现更新版本的微应用存在缺陷,将更新版本的微应用对应的版本号标记为不可用状态;若测试中未发现缺陷,将更新版本的微应用对应的版本号标记为可用状态。
在一个实施例中,S606具体包括:在微应用配置信息中提取微应用的灰度对象标识集;获取在目标应用程序中注册的目标对象标识;若灰度对象标识集包含目标对象标识,则确定加载微应用。
其中,灰度对象标识集为开放使用更新版本微应用的对象标识集合。在发布更新版本微应用时,新发布的更新版本可能运行不稳定,为降低版本升级的影响,首先开放部分用户使用更新版本,以对更新版本进行测试和改进,在更新版本运行稳定后再向全部用户开放使用。终端获取在目标应用程序中注册的目标对象标识,若灰度对象标识集包含目标对象标识,目标对象标识为被开放使用更新版本微应用的用户对象,确定在目标应用程序中加载微应用。在向全部用户开放使用更新版本的微应用之前,通过灰度对象标识集中的灰度对象对更新版本的微应用进行测试,可以降低版本升级造成的影响,提高微应用运行的稳定性。
在一个实施例中,S606具体包括:若根据微应用配置信息确定加载微应用,在微应用配置信息中,查询微应用场景标识对应的文件类型和版本信息,得到微应用的文件类型和版本信息。
上述实施例中,基于加载事件获取微应用场景标识,并根据微应用场景标识从配置平台读取微应用配置信息。从而可以根据不同的微应用场景选择对应的更新版本微应用。若根据微应用配置信息确定加载微应用,确定微应用的文件类型和版本信息。避免在更新版本微应用不可用时进行加载而影响使用,提高了加载效率。
在一个实施例中,S606之后还包括:若根据微应用配置信息确定不加载微应用,获取目标应用程序的与微应用功能一致的目标组件;将与微应用功能一致的目标组件加载至目标应用程序。
其中,目标组件是与微应用功能一致的组件,可以是npm(Node Package Manager,包管理工具)框架组件。目标组件与微应用的功能一致,在目标应用程序编译时打包在目标应用程序中。若根据微应用配置信息确定不加载微应用,将与微应用功能一致的目标组件加载至目标应用程序。
在一个实施例中,在发布更新版本的微应用时,同时发布目标组件。所发布的目标组件与更新版本的微应用由同一套源代码编译所得。在微应用的发布阶段同时发布微应用与目标组件,在终端不能兼容微应用或者所发布的微应用不可用时,以接入目标组件的方式实现与微应用相同的功能。
上述实施例中,若根据微应用配置信息确定不加载微应用,获取目标应用程序的与微应用功能一致的目标组件,将与微应用功能一致的目标组件加载至目标应用程序。从而可以在更新版本的微应用不可用时,通过打包在目标应用程序中的目标组件进行兜底,并呈现出与微应用相同的产品功能,避免在加载过程中发生故障,提高了加载效率。
在一个实施例中,如图7所示,S606具体包括S702,S206具体包括S704-S706:
S702,确定微应用的文件类型,以及在微应用配置信息中确定微应用的版本信息。
其中,微应用的文件类型为微应用的入口文件类型,可以是HTML Entry类型或者JS Entry类型。终端获取预先配置的文件类型,并在微应用配置信息中确定微应用的版本信息,所确定的版本信息可以是更新版本的微应用的版本号。
在一个实施例中,S702具体包括:根据微应用场景标识,在微应用配置信息中确定微应用的版本信息。例如,微应用配置信息包括“场景标识1:版本3;场景标识2:版本2;场景标识3:版本4”,若微应用场景标识为3,所确定的版本信息为“版本4”。
S704,在微应用配置信息中确定微应用的应用标识。
其中,应用标识为用于对各微应用进行标志的唯一标识,可以由数字、字母、字符或者特殊符号等组成。微应用配置信息中可以包括微应用的应用标识,例如微应用配置信息为“微应用1-场景标识1:版本3”。
S706,基于版本信息、文件类型和应用标识生成微应用索引地址。
终端在确定待加载微应用的应用标识、版本信息与文件类型时,对应用标识、版本信息与文件类型进行拼装,得到微应用索引地址,以根据微应用索引地址从发布平台获取微应用资源。
在一个实施例中,S706具体包括:根据网络地址格式,对版本信息、文件类型和应用标识进行拼装,得到微应用索引地址。其中,网络地址格式是网络协议定义的格式,网络协议可以是HTTP协议或者HTTPS协议等。HTTP协议是运行在TCP协议之上的超文本传输协议。HTTPS协议为在HTTP协议的基础上增加了SSL(Secure Sockets Layer,安全套接字协议)的、可进行加密传输的网络传输协议。
终端根据网络地址格式,对版本信息、文件类型和应用标识进行拼装,得到微应用索引地址。例如,微应用索引地址为https://wzq.../micro-app/v0.6.9/index.html,其中,“micro-app”为应用标识,“v0.6.9”为版本信息,“html”为文件类型。
上述实施例中,确定微应用的文件类型,以及在微应用配置信息中确定微应用的版本信息和微应用的应用标识。基于版本信息、文件类型和应用标识生成微应用索引地址。从而可以根据微应用索引地址从应用平台下载微应用资源,并将微应用资源与目标应用程序融合,无需针对目标应用程序发布更新文件即可实现对目标应用程序中部分模块的更新,提高了更新效率。
在一个实施例中,目标应用程序是不同端的应用程序,包括原生应用程序、小程序或公众号应用;S210之后还包括:获取目标应用程序中运行更新版本的微应用对应的环境变量;根据环境变量获取不同端应用程序对应的工具包;基于工具包调用在通用基类中定义的业务程序;通过运行所调用的业务程序执行应用业务。
其中,环境变量是用于表示更新版本的微应用对应的运行环境的变量,通过环境变量映射不同端对应的工具包(Software Development Kit,SDK)。工具包是应用程序对应的开发工具的集合,包括应用程序可以调用的API(Application Programming Interface,应用程序接口)集合,以及其他相关文档、范例以及工具的集合。通用基类是针对不同端的应用程序统一定义的基类,在应用程序的运行过程中进行实例化。在通用基类中,针对不同端的应用程序定义了统一了业务程序,业务程序为用于执行应用业务的程序,可以用基类中定义的函数来实现。所执行的应用业务包括不同端的应用程序可以执行的全部业务,例如,展示页面、弹出弹窗、文字编辑等。
上述实施例中,获取目标应用程序中运行更新版本的微应用对应的环境变量,根据环境变量获取不同端应用程序对应的工具包。基于工具包调用在通用基类中定义的业务程序,通过运行所调用的业务程序执行应用业务。由于针对不同端应用程序封装了多套继承了通用基类的工具包,因此微应用在运行时,可以通过对应的工具包来完成应用业务,从而使微应用可以运行在不同端应用程序中,不同端应用程序可以共享同一微应用,实现了不同技术栈的应用程序间动态共享相同的业务模块。
在一个实施例中,如图8所示,S210之后还包括如下步骤:
S802,获取目标应用程序中运行更新版本的微应用对应的环境变量,以及更新版本的微应用在运行时生成的运行日志。
其中,运行日志是用于记录微应用运行状态的日志,可以包括微应用在运行时获取的数据、生成的数据、告警信息、错误信息或者配置信息等。通过运行日志可以查看微应用运行时发生的错误,方便对微应用进行维护。
S804,根据环境变量触发对应的日志上报事件,以通过日志上报事件将运行日志上报至环境变量对应的日志空间。
日志上报事件为用于将运行日志上报至日志空间的事件。日志空间为用于存储运行日志的存储空间,可以是终端的磁盘空间。
在一个实施例中,S804具体包括:终端根据环境变量确定运行日志的日志标识,然后触发日志上报事件,通过日志上报事件调用目标应用程序中的埋点方法,并通过调用的埋点方法将运行日志上报到环境变量对应的日志空间。
上述实施例中,获取目标应用程序中运行更新版本的微应用对应的环境变量,以及更新版本的微应用在运行时生成的运行日志。根据环境变量触发对应的日志上报事件,以通过日志上报事件将运行日志上报至环境变量对应的日志空间。从而可以在微应用在不同端应用程序运行时,将产生的运行日志上报到不同的日志空间,以区分来自不同端应用程序的流量,实现了不同技术栈的应用程序间动态共享相同的业务模块。
在一个实施例中,更新版本的微应用包括至少一个组件;S210之后还包括:当组件接收到交互指令时,根据交互指令调用共享交互程序;通过共享交互程序处理交互指令,得到处理结果;基于处理结果展示组件对应的交互界面。
其中,微应用中组件是微应用的组成部分,可以是图形化的实体。例如,如图9所示,微应用中显示的“查看全部”、“评论”或者“讨论区”等为微应用中的组件,通过微应用中的组件可以触发针对微应用的交互指令。共享交互程序是微应用中的至少一个组件间共享的交互程序。各组件可以通过共享交互程序对交互指令执行相同的处理方法,得到处理结果。
具体地,结合图9对上述实施例进行具体阐述,当用户通过点击“讨论区1”组件或者“讨论区2”组件触发了交互指令时,微应用对通过“讨论区1”组件以及“讨论区2”组件触发的交互指令的处理方法相同,所以为了节约资源,使“讨论区1”组件与“讨论区2”组件共享交互程序,通过共享交互程序对通过这两个组件触发的交互指令进行处理,从而无需针对“讨论区1”组件与“讨论区2”组件分别开发交互程序,避免了资源浪费,并提高了程序的开发效率。
上述实施例中,当组件接收到交互指令时,根据交互指令调用共享交互程序。通过共享交互程序处理交互指令,并基于处理结果展示组件对应的交互界面。从而无需针对各组件分别开发交互程序,提高了微应用的开发效率并节约资源。
在一个实施例中,如图10所示,S210具体包括如下步骤:
S1002,通过微前端框架接入微应用资源至目标应用程序。
其中,微前端框架为通过微前端技术创建的前端架构,用于将微应用资源与目标应用程序融合,并为微应用提供运行环境,以及管理微应用的生命周期。在微前端框架中,目标应用程序可以由多个微应用组合而成,每个微应用可以被独立的开发和部署,相互独立运行。终端通过微前端框架可以接入多个微应用资源至目标应用程序,将接入的微应用资源与目标应用程序融合。
S1004,对微应用资源进行解析,以实现更新版本的微应用和目标应用程序之间的融合。
微应用资源包括多个资源文件,终端依次对各资源文件进行解析,并根据解析数据执行资源文件,以实现更新版本的微应用和目标应用程序之间的融合。
在一个实施例中,S1004具体包括:对微应用资源进行解析,得到解析数据;对解析数据进行渲染,得到微应用页面;通过目标应用程序展示微应用页面,实现更新版本的微应用和目标应用程序之间的融合。
其中,微应用页面是对微应用资源进行渲染所得的网络页面,可以包括文字、图片、控件、音频或者视频等。终端可以首先对微应用入口文件进行解析,并根据解析数据进行页面的渲染,然后执行其他微应用资源文件的解析,并根据解析数据进行页面的渲染,在执行完所有的微应用资源文件时完成页面的渲染,得到微应用页面。终端通过目标应用程序展示微应用页面,实现更新版本的微应用和目标应用程序之间的融合,在目标应用程序中实现微应用的功能。
上述实施例中,通过微前端框架接入微应用资源至目标应用程序,并对微应用资源进行解析,以实现更新版本的微应用和目标应用程序之间的融合。从而可以不需要对目标应用程序发布更新版本并对目标应用程序进行整体更新,即可实现目标应用程序中部分模块的更新,提高了更新效率。
在一个实施例中,S210之后还包括:检测外部应用发起的作用于更新版本的微应用的通信请求;更新版本的微应用与外部应用之间相互隔离;建立外部应用与更新版本的微应用之间的应用通信通道;基于应用通信通道,传输外部应用与更新版本的微应用之间的交互数据。
其中,外部应用可以是更新版本的微应用之外的其他应用,可以是微应用或者各种技术栈的应用程序。通信请求为用于与微应用进行通信的请求,包括与微应用进行功能交互的通信请求,以及与微应用进行数据传递的通信请求。终端可以通过微前端框架建立外部应用与更新版本的微应用之间的应用通信通道,基于应用通信通道,传输外部应用与更新版本的微应用之间的交互数据。如图11所示,微应用的运行环境与外部应用相互隔离,通过微前端框架中的通信单元实现微应用与外部应用间的通信。在微应用运行于与外部隔离的运行环境中时,通过应用通信通道使微应用与外部应用进行通信,保障了通信的可靠性,并且可以保证微应用的运行与外部应用互不影响,保证了微应用的独立性。
上述实施例中,检测外部应用发起的作用于更新版本的微应用的通信请求,建立外部应用与更新版本的微应用之间的应用通信通道,并基于应用通信通道,传输外部应用与更新版本的微应用之间的交互数据。从而可以使微应用运行于与外部隔离的运行环境中,避免微应用与外部应用发生冲突,实现微应用的独立运行。
在一个实施例中,如图12所示,多个微应用被独立开发,该多个微应用可以在线合成目标应用程序,目标应用程序可以是各种技术栈的应用程序,包括原生应用程序、小程序或者公众号应用等。然后将各微应用对应的微应用资源发布至CDN平台,在发布成功后,将各微应用的版本号更新到配置平台。在发布更新版本的微应用时,首先开放部分灰度用户对更新版本的微应用进行验证,在验证通过后,将更新版本的微应用向全部用户开放。若更新版本的微应用未通过验证,开启回滚开关,回滚到历史版本的微应用,以保证版本升级过程的稳定性。
在对前端源代码进行编译时,可以将前端源代码分别构建为npm组件版本与微应用版本,并且微应用版本和npm组件版本的功能一致。如图6所示,针对前端源代码分别构建了微应用和npm框架组件,以在微应用版本的更新文件不可用时,使用npm版本的更新文件进行兜底,从而在不能兼容微应用的低版本终端设备上,可以直接降级成npm方式进行相应功能的接入,保障升级过程的稳定性。
更新版本的微应用发布成功后,在运行目标应用程序的过程中,若切换到更新版本的微应用对应的微应用页面,根据微应用场景标识获取微应用配置信息。根据微应用配置信息判断是否加载更新版本的微应用。若确定加载更新版本的微应用,确定微应用的文件类型,以及在微应用配置信息中确定微应用的版本信息,对版本信息、文件类型和应用标识进行拼装,得到微应用索引地址。根据微应用索引地址从应用平台获取微应用资源,将微应用资源加载至目标应用程序,并对微应用资源进行渲染,在目标应用程序中展示微应用页面,实现更新版本的微应用与目标应用程序的融合。若根据微应用配置信息确定不加载微应用,获取目标应用程序的与微应用功能一致的目标组件;将与微应用功能一致的目标组件加载至目标应用程序。
微应用可以运行于多端的环境中,在微应用的开发阶段,针对不同端封装对应的SDK,不同端对应的SDK继承统一的通用基类。在微应用的运行期,通过环境变量获取不同端对应的SDK,调用通用基类中定义的函数来执行应用业务,从而实现了微应用在多端环境中的共享。不同端运行的微应用在运行时生成的运行日志上报至不同的日志空间,以对来自不同端的流量进行区分。根据不同端对应的环境变量生成日志名称,并触发日志上报事件,通过目标应用程序中定义的埋点方法将运行日志上报至对应的日志空间。由于微应用是由若干组件渲染而成,外层组件内还可以嵌套下层的组件,组件内触发的事件由最内层的组件向外派发,在微应用入口处统一进行应用状态修改和交互处理。对于不同组件内的相同事件,在微应用的入口进行统一处理,实现了针对各组件的逻辑复用。
在一个实施例中,如图13所示,微应用的动态更新方法包括如下步骤:
S1302,在运行目标应用程序的过程中,检测目标应用程序的加载事件。
S1304,基于加载事件获取微应用场景标识;根据微应用场景标识从配置平台读取微应用配置信息。
S1306,在微应用配置信息中提取微应用的灰度对象标识集;获取在目标应用程序中注册的目标对象标识;若灰度对象标识集包含目标对象标识,则确定加载微应用。
S1308,确定微应用的文件类型,以及在微应用配置信息中确定微应用的版本信息;在微应用配置信息中确定微应用的应用标识。
S1310,基于版本信息、文件类型和应用标识生成微应用索引地址。
S1312,依据微应用索引地址,从应用平台获取版本信息对应的微应用资源;加载微应用资源至目标应用程序。
S1314,通过微前端框架接入微应用资源至目标应用程序;对微应用资源进行解析,得到解析数据;对解析数据进行渲染,得到微应用页面。
S1316,通过目标应用程序展示微应用页面,实现更新版本的微应用和目标应用程序之间的融合。
S1318,若根据微应用配置信息确定不加载微应用,获取目标应用程序的与微应用功能一致的目标组件;将与微应用功能一致的目标组件加载至目标应用程序。
S1320,获取目标应用程序中运行更新版本的微应用对应的环境变量。
S1322,根据环境变量获取不同端应用程序对应的工具包;基于工具包调用在通用基类中定义的业务程序;通过运行所调用的业务程序执行应用业务。
S1324,检测微应用页面的页面关闭事件;响应于页面关闭事件,将微应用资源从目标应用程序中移除。
上述S1302至S1324的具体内容可以参考上文所述的具体实现过程。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的微应用的动态更新方法的微应用的动态更新装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个微应用的动态更新装置实施例中的具体限定可以参见上文中对于微应用的动态更新方法的限定,在此不再赘述。
在一个实施例中,如图14所示,提供了一种微应用的动态更新装置,包括:检测模块1402、确定模块1404、获得模块1406、获取模块1408和加载模块1410,其中:
检测模块1402,用于在运行目标应用程序的过程中,检测目标应用程序的加载事件;
确定模块1404,用于根据加载事件确定待加载的微应用的文件类型和版本信息;
获得模块1406,用于基于版本信息和文件类型获得微应用索引地址;
获取模块1408,用于依据微应用索引地址,从应用平台获取版本信息对应的微应用资源;微应用资源包括发布至应用平台的且为更新版本的微应用对应的应用文件;
加载模块1410,用于加载微应用资源至目标应用程序。
上述实施例中,在运行目标应用程序的过程中,检测目标应用程序的加载事件,根据加载事件确定待加载的微应用的文件类型和版本信息。从而可以基于版本信息和文件类型获得微应用索引地址,并依据微应用索引地址,从应用平台获取版本信息对应的、更新版本的微应用资源,然后加载微应用资源至目标应用程序,以实现微应用和目标应用程序的融合。因此,终端可以在目标应用程序运行过程中,可以将更新版本的微应用动态加载至目标应用程序,并将目标应用程序与微应用进行融合,不需要对目标应用程序发布更新版本并对目标应用程序进行整体更新,即可实现目标应用程序中部分模块的更新,提高了更新效率。进一步地,由于目标应用程序可以在运行期与其他应用程序共享微应用,微应用可以在不同技术栈应用程序间复用,从而不需要针对每种应用程序开发一套微应用,实现了不同应用程序间的模块共享。此外,由于目标应用程序可以解构成多个独立的微应用,多个独立的微应用间耦合度低,可以并行的进行开发,提高了开发效率。
在一个实施例中,确定模块1404,还用于:
基于加载事件获取微应用场景标识;
根据微应用场景标识从配置平台读取微应用配置信息;
若根据微应用配置信息确定加载微应用,确定微应用的文件类型和版本信息。
上述实施例中,基于加载事件获取微应用场景标识,并根据微应用场景标识从配置平台读取微应用配置信息。从而可以根据不同的微应用场景选择对应的更新版本微应用。若根据微应用配置信息确定加载微应用,确定微应用的文件类型和版本信息。避免在更新版本微应用不可用时进行加载而影响使用,提高了加载效率。
在一个实施例中,确定模块1404,还用于:
在微应用配置信息中提取微应用的灰度对象标识集;
获取在目标应用程序中注册的目标对象标识;
若灰度对象标识集包含目标对象标识,则确定加载微应用。
在一个实施例中,装置还包括:
获取模块1408,还用于若根据微应用配置信息确定不加载微应用,获取目标应用程序的与微应用功能一致的目标组件;
加载模块1410,还用于将与微应用功能一致的目标组件加载至目标应用程序。
上述实施例中,若根据微应用配置信息确定不加载微应用,获取目标应用程序的与微应用功能一致的目标组件,将与微应用功能一致的目标组件加载至目标应用程序。从而可以在更新版本的微应用不可用时,通过打包在目标应用程序中的目标组件进行兜底,并呈现出与微应用相同的产品功能,避免在加载过程中发生故障,提高了加载效率。
在一个实施例中,确定模块1404,还用于:
确定微应用的文件类型,以及在微应用配置信息中确定微应用的版本信息;
获得模块1406,还用于:
在微应用配置信息中确定微应用的应用标识;
基于版本信息、文件类型和应用标识生成微应用索引地址。
上述实施例中,确定微应用的文件类型,以及在微应用配置信息中确定微应用的版本信息和微应用的应用标识。基于版本信息、文件类型和应用标识生成微应用索引地址。从而可以根据微应用索引地址从应用平台下载微应用资源,并将微应用资源与目标应用程序融合,无需针对目标应用程序发布更新文件即可实现对目标应用程序中部分模块的更新,提高了更新效率。
在一个实施例中,目标应用程序是不同端的应用程序,包括原生应用程序、小程序或公众号应用;如图15所示,装置还包括:
获取模块1408,还用于获取目标应用程序中运行更新版本的微应用对应的环境变量;根据环境变量获取不同端应用程序对应的工具包;
第一调用模块1412,用于基于工具包调用在通用基类中定义的业务程序;
执行模块1414,用于通过运行所调用的业务程序执行应用业务。
上述实施例中,获取目标应用程序中运行更新版本的微应用对应的环境变量,根据环境变量获取不同端应用程序对应的工具包。基于工具包调用在通用基类中定义的业务程序,通过运行所调用的业务程序执行应用业务。由于针对不同端应用程序封装了多套继承了通用基类的工具包,因此微应用在运行时,可以通过对应的工具包来完成应用业务,从而使微应用可以运行在不同端应用程序中,不同端应用程序可以共享同一微应用,实现了不同技术栈的应用程序间动态共享相同的业务模块。
在一个实施例中,装置还包括:
获取模块1408,还用于获取目标应用程序中运行更新版本的微应用对应的环境变量,以及更新版本的微应用在运行时生成的运行日志;
上报模块1416,用于根据环境变量触发对应的日志上报事件,以通过日志上报事件将运行日志上报至环境变量对应的日志空间。
上述实施例中,获取目标应用程序中运行更新版本的微应用对应的环境变量,以及更新版本的微应用在运行时生成的运行日志。根据环境变量触发对应的日志上报事件,以通过日志上报事件将运行日志上报至环境变量对应的日志空间。从而可以在微应用在不同端应用程序运行时,将产生的运行日志上报到不同的日志空间,以区分来自不同端应用程序的流量,实现了不同技术栈的应用程序间动态共享相同的业务模块。
在一个实施例中,更新版本的微应用包括至少一个组件;装置还包括:
第二调用模块1418,用于当组件接收到交互指令时,根据交互指令调用共享交互程序;
处理模块1420,用于通过共享交互程序处理交互指令,得到处理结果;
展示模块1422,用于基于处理结果展示组件对应的交互界面。
上述实施例中,当组件接收到交互指令时,根据交互指令调用共享交互程序。通过共享交互程序处理交互指令,并基于处理结果展示组件对应的交互界面。从而无需针对各组件分别开发交互程序,提高了微应用的开发效率并节约资源。
在一个实施例中,加载模块1410,还用于:
通过微前端框架接入微应用资源至目标应用程序;
对微应用资源进行解析,以实现更新版本的微应用和目标应用程序之间的融合。
在一个实施例中,加载模块1410,还用于:
对微应用资源进行解析,得到解析数据;
对解析数据进行渲染,得到微应用页面;
通过目标应用程序展示微应用页面,实现更新版本的微应用和目标应用程序之间的融合。
上述实施例中,通过微前端框架接入微应用资源至目标应用程序,并对微应用资源进行解析,以实现更新版本的微应用和目标应用程序之间的融合。从而可以不需要对目标应用程序发布更新版本并对目标应用程序进行整体更新,即可实现目标应用程序中部分模块的更新,提高了更新效率。
在一个实施例中,装置还包括:
检测模块1402,还用于检测微应用页面的页面关闭事件;
移除模块1424,用于响应于页面关闭事件,将微应用资源从目标应用程序中移除。
在一个实施例中,装置还包括:
检测模块1402,还用于检测外部应用发起的作用于更新版本的微应用的通信请求;更新版本的微应用与外部应用之间相互隔离;
建立模块1426,用于建立外部应用与更新版本的微应用之间的应用通信通道;
传输模块1428,用于基于应用通信通道,传输外部应用与更新版本的微应用之间的交互数据。
上述实施例中,检测外部应用发起的作用于更新版本的微应用的通信请求,建立外部应用与更新版本的微应用之间的应用通信通道,并基于应用通信通道,传输外部应用与更新版本的微应用之间的交互数据。从而可以使微应用运行于与外部隔离的运行环境中,避免微应用与外部应用发生冲突,实现微应用的独立运行。
上述微应用的动态更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图16所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种微应用的动态更新方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (16)

1.一种微应用的动态更新方法,其特征在于,所述方法包括:
在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;
根据所述加载事件确定待加载的微应用的文件类型和版本信息;
基于所述版本信息和所述文件类型获得微应用索引地址;
依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;
加载所述微应用资源至所述目标应用程序。
2.根据权利要求1所述的方法,其特征在于,所述根据所述加载事件确定待加载的微应用的文件类型和版本信息包括:
基于所述加载事件获取微应用场景标识;
根据所述微应用场景标识从配置平台读取微应用配置信息;
若根据所述微应用配置信息确定加载所述微应用,确定所述微应用的文件类型和版本信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述微应用配置信息确定加载所述微应用包括:
在所述微应用配置信息中提取所述微应用的灰度对象标识集;
获取在所述目标应用程序中注册的目标对象标识;
若所述灰度对象标识集包含所述目标对象标识,则确定加载所述微应用。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若根据所述微应用配置信息确定不加载所述微应用,获取所述目标应用程序的与所述微应用功能一致的目标组件;
将与所述微应用功能一致的目标组件加载至所述目标应用程序。
5.根据权利要求2所述的方法,其特征在于,所述确定所述微应用的文件类型和版本信息包括:
确定所述微应用的文件类型,以及在所述微应用配置信息中确定所述微应用的版本信息;
所述基于所述版本信息和所述文件类型获得微应用索引地址包括:
在所述微应用配置信息中确定所述微应用的应用标识;
基于所述版本信息、所述文件类型和所述应用标识生成微应用索引地址。
6.根据权利要求1所述的方法,其特征在于,所述目标应用程序是不同端的应用程序,包括原生应用程序、小程序或公众号应用;所述加载所述微应用资源至所述目标应用程序之后,所述方法还包括:
获取所述目标应用程序中运行更新版本的所述微应用对应的环境变量;
根据所述环境变量获取不同端应用程序对应的工具包;
基于所述工具包调用在通用基类中定义的业务程序;
通过运行所调用的业务程序执行应用业务。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标应用程序中运行更新版本的所述微应用对应的环境变量,以及所述更新版本的所述微应用在运行时生成的运行日志;
根据所述环境变量触发对应的日志上报事件,以通过所述日志上报事件将所述运行日志上报至所述环境变量对应的日志空间。
8.根据权利要求1所述的方法,其特征在于,更新版本的所述微应用包括至少一个组件;所述方法还包括:
当所述组件接收到交互指令时,根据所述交互指令调用共享交互程序;
通过所述共享交互程序处理所述交互指令,得到处理结果;
基于所述处理结果展示所述组件对应的交互界面。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述加载所述微应用资源至所述目标应用程序包括:
通过微前端框架接入所述微应用资源至所述目标应用程序;
对所述微应用资源进行解析,以实现更新版本的所述微应用和所述目标应用程序之间的融合。
10.根据权利要求9所述的方法,其特征在于,所述对所述微应用资源进行解析,以实现更新版本的所述微应用和所述目标应用程序之间的融合包括:
对所述微应用资源进行解析,得到解析数据;
对所述解析数据进行渲染,得到微应用页面;
通过所述目标应用程序展示所述微应用页面,实现更新版本的所述微应用和所述目标应用程序之间的融合。
11.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:
检测所述微应用页面的页面关闭事件;
响应于所述页面关闭事件,将所述微应用资源从所述目标应用程序中移除。
12.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:
检测外部应用发起的作用于更新版本的所述微应用的通信请求;所述更新版本的所述微应用与外部应用之间相互隔离;
建立所述外部应用与更新版本的所述微应用之间的应用通信通道;
基于所述应用通信通道,传输所述外部应用与更新版本的所述微应用之间的交互数据。
13.一种微应用的动态更新装置,其特征在于,所述装置包括:
检测模块,用于在运行目标应用程序的过程中,检测所述目标应用程序的加载事件;
确定模块,用于根据所述加载事件确定待加载的微应用的文件类型和版本信息;
获得模块,用于基于所述版本信息和所述文件类型获得微应用索引地址;
获取模块,用于依据所述微应用索引地址,从应用平台获取所述版本信息对应的微应用资源;所述微应用资源包括发布至所述应用平台的且为更新版本的所述微应用对应的应用文件;
加载模块,用于加载所述微应用资源至所述目标应用程序。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202210535059.5A 2022-05-17 2022-05-17 微应用的动态更新方法、装置、计算机设备和存储介质 Pending CN115113898A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210535059.5A CN115113898A (zh) 2022-05-17 2022-05-17 微应用的动态更新方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210535059.5A CN115113898A (zh) 2022-05-17 2022-05-17 微应用的动态更新方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN115113898A true CN115113898A (zh) 2022-09-27

Family

ID=83326170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210535059.5A Pending CN115113898A (zh) 2022-05-17 2022-05-17 微应用的动态更新方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115113898A (zh)

Similar Documents

Publication Publication Date Title
CN108334436B (zh) 应用软件的优化方法、装置、设备及计算机可读存储介质
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
CN114008994B (zh) 一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及***
US9665465B1 (en) Automated determination of application permissions
CN108255701B (zh) 场景测试方法及移动终端
CN105335132B (zh) 一种自定义应用程序功能的方法、装置以及***
CN113055492A (zh) 服务灰度链路的控制方法、装置、计算机设备和存储介质
US11846972B2 (en) Method and apparatus for generating software test reports
CN111782300A (zh) 一种数据处理方法、装置、设备及***
CN104715309A (zh) 业务控制方法及装置
CN106843901B (zh) 一种页面渲染和验证的方法和装置
CN112631590B (zh) 组件库生成方法、装置、电子设备和计算机可读介质
US20140157144A1 (en) Network system
CN113778442A (zh) 一种***菜单生成方法、装置、设备及存储介质
CN114385382A (zh) 轻应用的访问方法、装置、计算机设备和存储介质
US9164817B2 (en) Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal
CN115113898A (zh) 微应用的动态更新方法、装置、计算机设备和存储介质
CN110865818A (zh) 应用关联域名的检测方法、装置及电子设备
CN114428737A (zh) 基于微服务体系的通信方法、装置、设备及存储介质
CN113377376A (zh) 数据包生成方法、数据包生成装置、电子设备及存储介质
CN112667441A (zh) 基于容错功能的业务模块调度方法、***及存储介质
CN114428723A (zh) 测试***、***测试方法、相关设备及存储介质
CN111880996A (zh) 一种裸机数据采集方法、装置、设备及可读存储介质
CN112068895A (zh) 代码配置方法、装置、视频播放设备及存储介质
CN113542323A (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