CN111880857A - 小程序的下发方法、装置、设备以及存储介质 - Google Patents

小程序的下发方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN111880857A
CN111880857A CN202010693971.4A CN202010693971A CN111880857A CN 111880857 A CN111880857 A CN 111880857A CN 202010693971 A CN202010693971 A CN 202010693971A CN 111880857 A CN111880857 A CN 111880857A
Authority
CN
China
Prior art keywords
applet
construction element
issued
host program
host
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.)
Granted
Application number
CN202010693971.4A
Other languages
English (en)
Other versions
CN111880857B (zh
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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010693971.4A priority Critical patent/CN111880857B/zh
Publication of CN111880857A publication Critical patent/CN111880857A/zh
Application granted granted Critical
Publication of CN111880857B publication Critical patent/CN111880857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44584Portable applications, i.e. making applications self-contained, e.g. U3 standard

Landscapes

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

Abstract

本申请公开了一种小程序的下发方法、装置、设备以及存储介质,涉及计算机技术领域,尤其涉及小程序、智能搜索和智能推荐技术。具体实现方案为:基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得;根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息;根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。根据本申请的技术解决了下发的小程序与宿主程序不兼容的问题。

Description

小程序的下发方法、装置、设备以及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及小程序、智能搜索和智能推荐技术,具体涉及一种小程序的下发方法、装置、设备以及存储介质。
背景技术
小程序是可以从服务器下发,无需安装即可在特定容器内执行的应用程序。近年来小程序发展迅猛,开发者希望通过小程序在更多的宿主APP上分发,给自身带来流量的同时,给用户带来便捷的体验。
但由于小程序的SDK(Software Develop Kit,软件开发工具包)的更新发版、宿主程序的更新发版、小程序包的更新发布等多个变更因素,小程序在下发到宿主程序中运行的时候,往往存在未知的兼容性问题。该问题导致服务的稳定差,降低用户体验,损伤了宿主程序的影响力,对小程序分发平台的公信力也造成一定程度的影响。
发明内容
本申请提供了一种小程序的下发方法、装置、设备以及存储介质。
根据本申请的一方面,提供了一种小程序的下发方法,包括:
基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得;
根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息;
根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
根据本申请的另一方面,提供了一种小程序的下发装置,包括:
元素检测模块,用于基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得;
关系确定模块,用于根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息;
程序下发模块,用于根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
根据本申请的又一方面,提供了一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例中任一项所述的方法。
根据本申请的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请实施例中任一项所述的方法。
根据本申请的技术解决了下发的小程序与宿主程序不兼容的问题。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的一种小程序的下发方法的流程图;
图2是本申请实施例提供的另一种小程序的下发方法的流程图;
图3是本申请实施例提供的又一种小程序的下发方法的流程图;
图4是本申请实施例提供的又一种小程序的下发方法的流程图;
图5是本申请实施例提供的又一种小程序的下发方法的流程图;
图6是本申请实施例提供的又一种小程序的下发方法的流程示意图;
图7是本申请实施例提供的一种宿主能力检测的流程示意图;
图8是本申请实施例提供的一种线下检测方案的流程示意图;
图9是本申请实施例提供的一种线上检测方案的流程示意图;
图10是本申请实施例提供的一种小程序能力检测的流程示意图;
图11是本申请实施例提供的一种倒排链的结构示意图;
图12是本申请实施例提供的一种小程序的下发装置的结构示意图;
图13是根据本申请实施例的小程序的下发方法的电子设备框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是本申请实施例提供的一种小程序的下发方法的流程图。本实施例可适用于将小程序下发到宿主程序中运行的情况。该方法可以由一种小程序的下发装置来执行。该装置可以由软件和/或硬件的方式实现。参见图1,本申请实施例提供的小程序的下发方法,包括:
S110、基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素。
其中,所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得。
小程序开发工具是指开发小程序的软件开发工具。在一个实施例中小程序开发工具可以是小程序SDK。
小程序是一种不需要下载安装即可使用的应用。
构造元素列表是指以表的形式显示的至少一个构造元素。
构造元素是指构造小程序的元素,也可以理解为小程序的组成元素。
为丰富构造元素的数据维度,构造元素可以包括:框架、组件和API(ApplicationProgramming Interface,应用程序接口)中的至少一种。
框架是指为了实现某个业界标准或完成特定基本任务的软件组件规范。
组件是指是对数据和方法的封装。其中该数据可以通过API获得。
在一个实施例中,可以根据宿主程序关联的小程序开发工具包括的构造元素生成构造元素列表。
宿主程序是指在计算机环境下,软件赖以生存的软件环境。
可选地,宿主程序可以是操作系统、服务器程序和应用程序中的至少一种。
目标构造元素是指宿主程序支持的构造元素。
待下发小程序是指待下发至宿主程序中的小程序。
待下发小程序的构造元素是指,构造待下发小程序的元素,例如构造待下发小程序的框架、组件和API中的至少一种。
S120、根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息。
其中,兼容信息是描述宿主程序与待下发小程序的兼容性的信息。
在一个实施例中,宿主程序与待下发小程序的兼容信息包括:宿主程序与待下发小程序具有兼容关系或宿主程序与待下发小程序不具有兼容关系。该兼容关系表示宿主程序支持小程序的全部实现逻辑。
S130、根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
可选地,可以将待下发小程序中具有兼容关系的小程序下发至宿主程序中;也可以将待下发小程序中具有兼容关系或部分兼容关系的小程序下发至宿主程序中。具体可以根据实际需要设定。
本申请实施例的技术方案,通过基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素;根据目标构造元素与待下发小程序的构造元素,确定宿主程序与待下发小程序的兼容信息;根据确定的兼容信息,将待下发小程序下发至宿主程序,从而保证了宿主程序与下发小程序的兼容性,同时实现了兼容关系的自动确定。
为适应新版本的小程序开发工具,上述方法还包括:
若检测到小程序开发工具发布新版本,则基于新版本对所述构造元素列表进行更新。
基于该技术特征,本申请实施例通过若检测到小程序开发工具发布新版本,则基于新版本对构造元素列表进行更新,从而解决小程序开发工具新版本的发布导致的兼容问题。
图2是本申请实施例提供的另一种小程序的下发方法的流程图。本方案是在上述实施例的基础上,对上述步骤“基于构造元素列表,检测宿主程序支持的目标构造元素”的具体优化。参见图2,本方案提供的小程序的下发方法包括:
S210、从构造元素列表中确定待检测的第一构造元素。
其中,第一构造元素是指从构造元素列表中确定用于对宿主程序进行检测的构造元素。
S220、根据所述第一构造元素关联的检测逻辑,对所述宿主程序进行检测。
其中,检测逻辑是指检测宿主程序是否支持第一构造元素的逻辑。
该逻辑可以根据第一构造元素的实现效果进行设计。该逻辑可以由测试人员编写。典型地,该逻辑可以是测试用例形式。
S230、根据检测结果,从所述构造元素列表中确定所述宿主程序支持的目标构造元素。
在一个实施例中,根据检测结果,从构造元素列表中确定宿主程序支持的目标构造元素,包括:
若检测成功,则将该第一构造元素作为目标构造元素。
S240、基于构造元素列表,检测待下发小程序的构造元素。
S250、根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息。
S260、根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
本申请实施例对上述方案的执行顺序不作限定。可选地,S240可以先于S210、S220或S230执行。
在一个实施例中,若上述第一构造元素的确定操作、上述宿主程序的检测操作以及上述目标构造元素的确定操作由宿主端执行,则从构造元素列表中确定待测试的第一构造元素之前,本方案还包括:
向宿主端发送宿主检测请求,由宿主端执行获取构造元素列表和构造元素列表关联的测试逻辑的操作;
接收宿主端返回的目标构造元素。
在另一个实施例中,若上述第一构造元素的确定操作、上述宿主程序的检测操作以及上述目标构造元素的确定操作由服务器端执行,则根据第一构造元素关联的测试逻辑,对宿主程序进行检测之前,本方案还包括:
获取宿主程序以及第一构造元素关联的测试逻辑。
该两种对宿主程序的检测方案可以任选其一使用,为保证能获取到检测结果,该两种方案也可以同时使用。
本方案通过从所述构造元素列表中确定待检测的第一构造元素;根据所述第一构造元素关联的检测逻辑,对所述宿主程序进行检测,从而实现对目标构造元素的自动检测。
图3是本申请实施例提供的又一种小程序的下发方法的流程图。本方案是在上述方案的基础上,对上述步骤“基于构造元素列表,检测待下发小程序的构造元素”的具体优化。参见图3,本方案提供的一种小程序的下发方法包括:
S310、从构造元素列表中确定待检测的第二构造元素。
其中,第二构造元素是指从构造元素列表中确定的,用于进行待下发小程序的构造元素检测的构造元素。
S320、基于正则表达式,根据所述第二构造元素的命名逻辑,生成所述第二构造元素的检测模板。
其中,检测模板是指基于正则表达式,根据第二构造元素的命名逻辑生成的,用于描述第二构造元素名称的模板。
S330、匹配生成的检测模板和待下发小程序的源代码。
S340、根据匹配结果,从所述构造元素列表中确定所述待下发小程序支持的构造元素。
在一个实施例中,根据匹配结果,从所述构造元素列表中确定待下发小程序支持的构造元素,包括:
若匹配成功,则将该第二构造元素作为待下发小程序支持的构造元素。
S350、基于构造元素列表,检测宿主程序支持的目标构造元素。
S360、根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息。
S370、根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
本申请实施例对上述方案的执行顺序不作限定。可选地,S340可以先于S310、S320或S330执行。
本方案通过基于正则表达式,根据第二构造元素的命名逻辑,生成第二构造元素的检测模板;匹配生成的检测模板和待下发小程序的源代码,从而实现对待下发小程序中构造元素的自动检测。
图4是本申请实施例提供的又一种小程序的下发方法的流程图。本方案是在上述方案的基础上,对上述方案的扩展。参见图4,本申请实施例提供的小程序的下发方法包括:
S410、若检测到宿主检测触发事件,则触发对目标构造元素的检测。
其中,宿主检测触发事件包括:宿主程序中的小程序开发工具发布新版本、宿主程序关联前端的小程序开发工具发布新版本、宿主程序的扩展包发布新版本和宿主程序发布新版本中的至少一种。
扩展包是用于实现宿主程序专有能力的SDK。
前端是指小程序开发工具的开发端。前端的小程序开发工具由前端工程师开发得到。根据前端的小程序开发工具,小程序开发者可以进行小程序的开发。
S420、基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得。
S430、根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息。
S440、根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
本方案通过若检测到宿主程序中的小程序开发工具发布新版本、宿主程序关联前端的小程序开发工具发布新版本、宿主程序的扩展包发布新版本和宿主程序发布新版本中的至少一种,则触发对目标构造元素的检测,从而提高对目标构造元素的检测效率。
图5是本申请实施例提供的又一种小程序的下发方法的流程图。本方案是在上述方案的基础上,对上述步骤“根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息”具体优化。参见图5,本方案提供的小程序的下发方法包括:
S510、基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得。
S520、匹配所述目标构造元素与所述待下发小程序的构造元素。
S530、若根据匹配结果确定所述目标构造元素包括所述待下发小程序的构造元素,则确定所述宿主程序与所述待下发小程序具有兼容关系。
也即,待下发小程序下发至宿主程序后,待下发小程序的全部逻辑均可以实现。
S540、根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
本方案通过匹配所述目标构造元素与所述待下发小程序的构造元素;若根据匹配结果确定所述目标构造元素包括所述待下发小程序的构造元素,则确定所述宿主程序与所述待下发小程序具有兼容关系,从而实现兼容关系的自动确定。
本方案是在上述方案的基础上,以实现智能推荐为例,提出的一种选方案。本方案提供的小程序的下发方法包括:
基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得;
根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息;
根据确定的兼容信息,从所述待下发小程序中确定目标小程序;
将所述目标小程序发送给所述宿主程序关联的客户端;
在接收到客户端的确认后,将所述目标小程序下发至所述宿主程序。
其中,目标小程序是与宿主程序具有兼容关系的小程序。
本方案通过将目标小程序发送给所述宿主程序关联的客户端,并在接收到客户端的确认后,将所述目标小程序下发至所述宿主程序,从而实现对客户端进行兼容小程序的推荐,提高小程序的下发准确率。
图6是本申请实施例提供的又一种小程序的下发方法的流程图。本方案是在上述方案的基础上,提供的一种扩展方案。参见图6,本方案提供的小程序的下发方法包括:
1、宿主能力检测:
宿主能力检测,也即对宿主程序中目标构造元素的检测。
宿主能力检测的触发事件包括:宿主程序中的小程序开发工具发布新版本、宿主程序关联前端的小程序开发工具发布新版本、宿主程序的扩展包发布新版本和宿主程序发布新版本。
参见图7,针对上述四种触发事件的检测逻辑为:针对宿主程序中的小程序开发工具发布新版本、宿主程序关联前端的小程序开发工具发布新版本和宿主程序发布新版本的情况,采用线上和线下两种方式进行宿主能力检测;针对宿主程序的扩展包发布新版本的情况,采用线上的方式进行宿主能力检测。
对于线下检测,本方案提供检测工具;对于线上检测,本方案检测服务。具体方案如下:
参见图8,线下检测方案的逻辑为:PMS(小程序包管理系统)下发检测请求给宿主平;宿主平台转发检测请求给宿主端(也即宿主程序);宿主端从宿主平台下载检测工具,并通过检测工具对自身进行检测,然后将测试结果上报到宿主能力中心。其中,检测工具包括构造元素列表和检测逻辑。
当PMS检测到宿主程序没有通过检测时,则停止向宿主程序下发小程序,并通知宿主平台,通过站内信、邮件等方式通知宿主程序尽快进行兼容性测试后才能获取到小程序。
参见图9,线上检测方案的逻辑为:上传变更的宿主程序包、变更的扩展包和前端的小程序开发工具的发版信息中的至少一种;上传后由宿主平台调度对宿主程序的检测服务,针对上述变更信息进行宿主能力检测,并将检测结果上传到宿主能力中心。
其中检测服务为基于构造元素列表,根据待检测构造元素关联的检测逻辑进行宿主能力检测。
在本方案中,开发的扩展包需要通过宿主平台发版,在发版时可以接收到扩展包。因此针对宿主程序的扩展包发布新版本的情况,基于线上的方式即可保证对其的宿主能力检测。
可选地,也可以基于线下方式对宿主程序的扩展包发布新版本的情况进行宿主能力检测。
宿主能力检测在本方案中是通过真机检测进行,通过将宿主程序下发到真机上,进行模拟真实环境的测试,并通过自动打点上报的方式,将检测的结果上报到宿主能力中心。
2、小程序能力检测:
小程序能力检测也即对开发者开发的待下发小程序进行构造元素的检测。
参见图10,小程序能力检测的逻辑为:基于工具端获取开发者上传的小程序的打包文件;对获取的打包文件进行解包,得到小程序的源代码;对源代码进行扫描,获取到小程序使用的构造元素;将获取的构造元素作为检测结果上传至宿主能力中心。
其中,工具端是指开发者开发小程序的应用程序端。
3、更新构造元素列表:
若检测到小程序开发工具发布新版本,则基于新版本对所述构造元素列表进行更新。
4、匹配宿主能力与小程序能力:
匹配宿主能力与小程序能力的目的是用来计算对应的小程序在宿主程序上是否能够下发。具体方法如下:
将检测到的宿主程序支持的目标构造元素的集合,与检测到的小程序中的构造元素的集合进行匹配。如果小程序中的构造元素,没有在目标构造元素的集合中,则表示该小程序与宿主程序不兼容,不能下发;否则,表示该小程序与宿主程序兼容,可以下发。
为提高兼容信息的准确率,匹配过程需要宿主程序的多个版本均能满足小程序支持的最低版本以上的所有构造元素的集合,才能下发该小程序。
5、小程序的下发干预:
将具有兼容关系的小程序对应的宿主集合以及宿主对应的小程序集合两类倒排链,同步到MPS,MPS通过倒排链,来确定是否下发小程序。倒排连示意图参见图11。
示例性地,第一小程序的下发倒排链为:
1872355:101,102,105,198;
其中,1872355为小程序的唯一标识,101,102,105,198为宿主程序的唯一标识。
为进一步保证宿主程序与下发小程序的兼容性,小程序的下发干预还包括:
宿主能力中心将匹配后生成的小程序对应的宿主集合以及宿主对应的小程序集合发送给宿主平台和服务端;宿主平台根据小程序对应的宿主集合以及宿主对应的小程序集合,生成下发程序列表和下发小程序的显示数据,并发送给宿主端;服务端中的MetaServer(数据中心)根据小程序与宿主程序的兼容关系,确定是否展示小程序的显示数据;服务端中的PMS控制是否响应用户对显示数据的点击操作,将该显示数据关联的下发小程序下发至宿主端。
本方案通过检测小程序的能力和宿主程序的能力,然后使用能力交集过滤掉能力不匹配的小程序,进一步精准的进行小程序在宿主程序上的下发,提高用户体验。
图12是本申请实施例提供的一种小程序的下发装置的结构示意图。参见图12,本申请实施例提供的小程序的下发装置1200,包括:元素检测模块1201、关系确定模块1202和程序下发模块1203。
其中,元素检测模块1201,用于基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具软件开发工具包获得;
关系确定模块1202,用于根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息;
程序下发模块1203,用于根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
本申请实施例的技术方案,通过基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素;根据目标构造元素与待下发小程序的构造元素,确定宿主程序与待下发小程序的兼容关系;根据确定的兼容关系,将待下发小程序下发至宿主程序,从而保证了宿主程序与下发小程序的兼容性,同时实现了兼容关系的自动确定。
进一步地,所述元素检测模块,包括:
第一元素确定单元,用于从所述构造元素列表中确定待检测的第一构造元素;
宿主检测单元,用于根据所述第一构造元素关联的检测逻辑,对所述宿主程序进行检测;
支持元素确定单元,用于根据检测结果,从所述构造元素列表中确定所述宿主程序支持的目标构造元素。
进一步地,所述元素检测模块,包括:
第二元素确定单元,用于从所述构造元素列表中确定待检测的第二构造元素;
模板生成单元,用于基于正则表达式,根据所述第二构造元素的命名逻辑,生成所述第二构造元素的检测模板;
代码匹配单元,用于匹配生成的检测模板和所述待下发小程序的源代码;
构造元素确定单元,用于根据匹配结果,从所述构造元素列表中确定所述待下发小程序的构造元素。
进一步地,所述装置还包括:
列表更新模块,用于若检测到小程序开发工具发布新版本,则基于新版本对所述构造元素列表进行更新。
进一步地,所述装置还包括:
检测触发模块,用于所述基于构造元素列表,检测宿主程序支持的目标构造元素之前,若检测到宿主检测触发事件,则触发对所述目标构造元素的检测;
其中,所述宿主检测触发事件包括:所述宿主程序中的小程序开发工具发布新版本、所述宿主程序关联前端的小程序开发工具发布新版本、所述宿主程序的扩展包发布新版本和所述宿主程序发布新版本中的至少一种。
进一步地,所述关系确定模块,包括:
元素匹配单元,用于匹配所述目标构造元素与所述待下发小程序的构造元素;
关系确定单元,用于若根据匹配结果确定所述目标构造元素包括所述待下发小程序的构造元素,则确定所述宿主程序与所述待下发小程序具有兼容关系。
进一步地,所述构造元素包括:构造小程序的框架、组件和API应用程序接口中的至少一种。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图13所示,是根据本申请实施例的小程序的下发方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图13所示,该电子设备包括:一个或多个处理器1301、存储器1302,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图13中以一个处理器1301为例。
存储器1302即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的小程序的下发方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的小程序的下发方法。
存储器1302作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的小程序的下发方法对应的程序指令/模块(例如,附图12所示的元素检测模块1201、关系确定模块1202和程序下发模块1203)。处理器1301通过运行存储在存储器1302中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的小程序的下发方法。
存储器1302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据小程序的下发电子设备的使用所创建的数据等。此外,存储器1302可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1302可选包括相对于处理器1301远程设置的存储器,这些远程存储器可以通过网络连接至小程序的下发电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
小程序的下发方法的电子设备还可以包括:输入装置1303和输出装置1304。处理器1301、存储器1302、输入装置1303和输出装置1304可以通过总线或者其他方式连接,图13中以通过总线连接为例。
输入装置1303可接收输入的数字或字符信息,以及产生与小程序的下发电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1304可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
根据本申请的技术解决了下发的小程序与宿主程序不兼容的问题。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (16)

1.一种小程序的下发方法,包括:
基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具获得;
根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息;
根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
2.根据权利要求1所述的方法,其中,所述基于构造元素列表,检测宿主程序支持的目标构造元素,包括:
从所述构造元素列表中确定待检测的第一构造元素;
根据所述第一构造元素关联的检测逻辑,对所述宿主程序进行检测;
根据检测结果,从所述构造元素列表中确定所述宿主程序支持的目标构造元素。
3.根据权利要求1或2所述的方法,其中,所述基于构造元素列表,检测待下发小程序的构造元素,包括:
从所述构造元素列表中确定待检测的第二构造元素;
基于正则表达式,根据所述第二构造元素的命名逻辑,生成所述第二构造元素的检测模板;
匹配生成的检测模板和所述待下发小程序的源代码;
根据匹配结果,从所述构造元素列表中确定所述待下发小程序的构造元素。
4.根据权利要求1或2所述的方法,所述方法还包括:
若检测到小程序开发工具发布新版本,则基于新版本对所述构造元素列表进行更新。
5.根据权利要求1或2所述的方法,所述基于构造元素列表,检测宿主程序支持的目标构造元素之前,所述方法还包括:
若检测到宿主检测触发事件,则触发对所述目标构造元素的检测;
其中,所述宿主检测触发事件包括:所述宿主程序中的小程序开发工具发布新版本、所述宿主程序关联前端的小程序开发工具发布新版本、所述宿主程序的扩展包发布新版本和所述宿主程序发布新版本中的至少一种。
6.根据权利要求1或2所述的方法,其中,所述根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息,包括:
匹配所述目标构造元素与所述待下发小程序的构造元素;
若根据匹配结果确定所述目标构造元素包括所述待下发小程序的构造元素,则确定所述宿主程序与所述待下发小程序具有兼容关系。
7.根据权利要求1或2所述的方法,其中,所述构造元素包括:构造小程序的框架、组件和API应用程序接口中的至少一种。
8.一种小程序的下发装置,包括:
元素检测模块,用于基于构造元素列表,检测宿主程序支持的目标构造元素,以及待下发小程序的构造元素,其中所述构造元素列表根据与所述宿主程序关联的小程序开发工具软件开发工具包获得;
关系确定模块,用于根据所述目标构造元素与所述待下发小程序的构造元素,确定所述宿主程序与所述待下发小程序的兼容信息;
程序下发模块,用于根据确定的兼容信息,将所述待下发小程序下发至所述宿主程序。
9.根据权利要求8所述的装置,其中,所述元素检测模块,包括:
第一元素确定单元,用于从所述构造元素列表中确定待检测的第一构造元素;
宿主检测单元,用于根据所述第一构造元素关联的检测逻辑,对所述宿主程序进行检测;
支持元素确定单元,用于根据检测结果,从所述构造元素列表中确定所述宿主程序支持的目标构造元素。
10.根据权利要求8或9所述的装置,其中,所述元素检测模块,包括:
第二元素确定单元,用于从所述构造元素列表中确定待检测的第二构造元素;
模板生成单元,用于基于正则表达式,根据所述第二构造元素的命名逻辑,生成所述第二构造元素的检测模板;
代码匹配单元,用于匹配生成的检测模板和所述待下发小程序的源代码;
构造元素确定单元,用于根据匹配结果,从所述构造元素列表中确定所述待下发小程序的构造元素。
11.根据权利要求8或9所述的装置,所述装置还包括:
列表更新模块,用于若检测到小程序开发工具发布新版本,则基于新版本对所述构造元素列表进行更新。
12.根据权利要求8或9所述的装置,所述装置还包括:
检测触发模块,用于所述基于构造元素列表,检测宿主程序支持的目标构造元素之前,若检测到宿主检测触发事件,则触发对所述目标构造元素的检测;
其中,所述宿主检测触发事件包括:所述宿主程序中的小程序开发工具发布新版本、所述宿主程序关联前端的小程序开发工具发布新版本、所述宿主程序的扩展包发布新版本和所述宿主程序发布新版本中的至少一种。
13.根据权利要求8或9所述的装置,其中,所述关系确定模块,包括:
元素匹配单元,用于匹配所述目标构造元素与所述待下发小程序的构造元素;
关系确定单元,用于若根据匹配结果确定所述目标构造元素包括所述待下发小程序的构造元素,则确定所述宿主程序与所述待下发小程序具有兼容关系。
14.根据权利要求8或9所述的装置,其中,所述构造元素包括:构造小程序的框架、组件和API应用程序接口中的至少一种。
15.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
CN202010693971.4A 2020-07-17 2020-07-17 小程序的下发方法、装置、设备以及存储介质 Active CN111880857B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010693971.4A CN111880857B (zh) 2020-07-17 2020-07-17 小程序的下发方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010693971.4A CN111880857B (zh) 2020-07-17 2020-07-17 小程序的下发方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111880857A true CN111880857A (zh) 2020-11-03
CN111880857B CN111880857B (zh) 2024-06-07

Family

ID=73154968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010693971.4A Active CN111880857B (zh) 2020-07-17 2020-07-17 小程序的下发方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111880857B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540775A (zh) * 2020-12-21 2021-03-23 恩亿科(北京)数据科技有限公司 用于程序包兼容性检测的方法及装置、设备
CN113312055A (zh) * 2021-05-28 2021-08-27 支付宝(杭州)信息技术有限公司 一种小程序投放方法、装置以及设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097575A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Method and system for providing version control of parameters in a command-based API using Java serialization
US20070078947A1 (en) * 2000-08-24 2007-04-05 Lakhdhir Mansoor A Apparatus, System and Method for Detecting Old Versions of an Applet in a Client Browser's JVM
US20100131982A1 (en) * 2008-11-26 2010-05-27 Jaan-Huei Chen Method for generating and accessing scheduled program list and multimedia device for the same
US20110197178A1 (en) * 2010-02-05 2011-08-11 Jeffrey Grant Johnston Architecture, system, and method for providing hover help support for c++ application source code
US20120150742A1 (en) * 2010-12-14 2012-06-14 Xtreme Mobility Inc. System and Method for Authenticating Transactions Through a Mobile Device
CN109032651A (zh) * 2018-08-24 2018-12-18 深圳创维-Rgb电子有限公司 应用更新方法、智能终端及计算机可读存储介质
CN109992501A (zh) * 2017-12-29 2019-07-09 阿里巴巴集团控股有限公司 小程序的可用性检查、可用小程序列表生成方法和装置
CN110865855A (zh) * 2019-11-18 2020-03-06 百度在线网络技术(北京)有限公司 小程序处理方法及相关设备
US20200104110A1 (en) * 2018-09-27 2020-04-02 Citrix Systems, Inc. Systems and methods of just-in-time proactive notification of a product release containing a software fix

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070078947A1 (en) * 2000-08-24 2007-04-05 Lakhdhir Mansoor A Apparatus, System and Method for Detecting Old Versions of an Applet in a Client Browser's JVM
US20050097575A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Method and system for providing version control of parameters in a command-based API using Java serialization
US20100131982A1 (en) * 2008-11-26 2010-05-27 Jaan-Huei Chen Method for generating and accessing scheduled program list and multimedia device for the same
US20110197178A1 (en) * 2010-02-05 2011-08-11 Jeffrey Grant Johnston Architecture, system, and method for providing hover help support for c++ application source code
US20120150742A1 (en) * 2010-12-14 2012-06-14 Xtreme Mobility Inc. System and Method for Authenticating Transactions Through a Mobile Device
CN109992501A (zh) * 2017-12-29 2019-07-09 阿里巴巴集团控股有限公司 小程序的可用性检查、可用小程序列表生成方法和装置
CN109032651A (zh) * 2018-08-24 2018-12-18 深圳创维-Rgb电子有限公司 应用更新方法、智能终端及计算机可读存储介质
US20200104110A1 (en) * 2018-09-27 2020-04-02 Citrix Systems, Inc. Systems and methods of just-in-time proactive notification of a product release containing a software fix
CN110865855A (zh) * 2019-11-18 2020-03-06 百度在线网络技术(北京)有限公司 小程序处理方法及相关设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董超群等: ""域:支持并行程序概念设计的一种抽象手段"", 《计算机科学》, 30 April 2001 (2001-04-30), pages 24 - 28 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540775A (zh) * 2020-12-21 2021-03-23 恩亿科(北京)数据科技有限公司 用于程序包兼容性检测的方法及装置、设备
CN113312055A (zh) * 2021-05-28 2021-08-27 支付宝(杭州)信息技术有限公司 一种小程序投放方法、装置以及设备
CN113312055B (zh) * 2021-05-28 2023-02-24 支付宝(中国)网络技术有限公司 一种小程序投放方法、装置以及设备

Also Published As

Publication number Publication date
CN111880857B (zh) 2024-06-07

Similar Documents

Publication Publication Date Title
CN110765024B (zh) 模拟测试方法、装置、电子设备和计算机可读存储介质
CN111913884A (zh) 分布式测试方法、装置、设备、系统和可读存储介质
CN110544128A (zh) 渠道信息的获取方法、装置、电子设备及存储介质
JP2018525751A (ja) 音声及びビデオ通話のためのインタラクティブ制御方法及び装置
CN113656147B (zh) 一种集群部署方法、装置、设备及存储介质
CN111752843B (zh) 用于确定影响面的方法、装置、电子设备及可读存储介质
CN111459813B (zh) 测试处理方法及装置
CN111880857B (zh) 小程序的下发方法、装置、设备以及存储介质
CN111639027A (zh) 一种测试方法、装置及电子设备
CN113238943A (zh) 持续集成测试的方法和装置
CN112487312A (zh) 关联兴趣点的方法、装置及确定兴趣点状态的方法、装置
CN110750419B (zh) 离线任务的处理方法、装置、电子设备及存储介质
CN114389969A (zh) 客户端的测试方法、装置、电子设备和存储介质
CN112000880A (zh) 推送消息的处理方法、装置、电子设备及可读存储介质
CN114721686A (zh) 配置数据更新方法、装置、电子设备和存储介质
WO2022100075A1 (zh) 性能检测方法、装置、电子设备和计算机可读介质
CN112308602A (zh) 用于生成模型的方法和装置
CN113190451A (zh) 测试方法、装置、电子设备和存储介质
CN112507249A (zh) 兴趣点生成的方法、装置、电子设备及存储介质
CN112069071A (zh) 用于确定程序适配性的方法、装置
CN112346512A (zh) 时间同步方法和装置
WO2023169193A1 (zh) 用于生成智能合约的方法和装置
CN111884847A (zh) 用于处理故障的方法和装置
CN113377638B (zh) 性能测试工具的生成方法和装置
CN113986135B (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