CN111782218B - 小程序处理方法、装置、设备及存储介质 - Google Patents
小程序处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111782218B CN111782218B CN202010604377.3A CN202010604377A CN111782218B CN 111782218 B CN111782218 B CN 111782218B CN 202010604377 A CN202010604377 A CN 202010604377A CN 111782218 B CN111782218 B CN 111782218B
- Authority
- CN
- China
- Prior art keywords
- code
- newly
- running
- expansion
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000002347 injection Methods 0.000 claims abstract description 19
- 239000007924 injection Substances 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 105
- 238000004891 communication Methods 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 25
- 238000013507 mapping Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 7
- 239000000243 solution Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- 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
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了小程序处理方法、装置、设备及存储介质,涉及小程序领域和云平台领域。具体实现方案为:获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能。本申请中通过扩展接口,实现扩展包的注入,不限于更新功能的扩展,能够实现小程序扩展能力的多样化,具有灵活性。
Description
技术领域
本申请实施例涉及计算机技术领域中的小程序技术,尤其涉及一种小程序处理方法、装置、设备及存储介质。
背景技术
随着小程序的***性增长,越来越多的小程序将宿主应用程序作为落地页的打开方式,从而可以有效减少用户终端中安装应用程序的数量。
目前,小程序运行在宿主应用程序的WebView环境下,必须依赖客户端和前端相互约定好的协议方式才能正常通信。如图1所示,通过以更新方法下发扩展包(即update.js)至客户端,客户端下载update.js,然后触发客户端跳转至前端,在下次启动小程序时,更新的扩展能力生效。
然而,这样限制小程序在开发阶段,前端只能在现有小程序框架上,通过以更新的方式下发扩展包,触发客户端的调用操作跳转至前端,在下次启动小程序,更新的扩展能力才能生效。因此,现有技术针对小程序能力的扩展方案,只能在原有基础上更新功能,导致扩展能力具有局限性。
发明内容
本申请提供了一种用于通过扩展接口,实现扩展包的注入,不限于更新功能的扩展的小程序处理方法、装置、设备及存储介质。
根据本申请的第一方面,提供了一种小程序处理方法,应用于客户端,所述方法包括:获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能。
根据本申请的第二方面,提供了一种小程序处理方法,应用于前端,所述方法包括:通过与运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境;在客户端通过与运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能。
根据本申请的第三方面,提供了一种小程序处理装置,包括:新增代码获取模块,用于获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;代码注入模块,用于通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;扩展功能执行模块,用于将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能。
根据本申请的第四方面,提供了一种小程序处理装置,包括:处理模块,用于通过与运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境;执行模块,用于在客户端通过与运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能。
根据本申请的第五方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面和/或第二方面所述的方法。
根据本申请的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面和/或第二方面所述的方法。
根据本申请的第七方面,提供了一种小程序处理方法,应用于客户端,所述方法包括:获取新增代码,所述新增代码包括第一新增代码和第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;根据所述第一新增代码和所述第二新增代码,控制当前运行的小程序执行相应的扩展功能。
根据本申请的第八方面,提供了一种小程序处理方法,应用于前端,所述方法包括:通过客户端将所述第二新增代码注入至前端的运行环境;在客户端将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则指示客户端控制当前运行的小程序执行相应的扩展功能。
根据本申请的第九方面,提供了一种计算机程序产品,所述程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面、第二方面、第七方面、第八方面中任一项所述的方法。
根据本申请的技术解决了针对小程序能力的扩展方案,只能在原有基础上更新功能,导致扩展能力具有局限性的问题。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是现有技术提供的小程序能力扩展的更新方法的示意图;
图2是可以实现本申请实施例的小程序处理场景图;
图3是根据本申请第一实施例的示意图;
图4是本申请第二实施例的示意图;
图5是可以实现本申请实施例的小程序能力扩展场景图;
图6是本申请实施例的小程序处理装置的结构示意图;
图7是本申请另一实施例的小程序处理装置的结构示意图;
图8是根据本申请第三实施例的示意图;
图9是根据本申请第四实施例的示意图;
图10是用来实现本申请实施例的小程序处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图2是可以实现本申请实施例的小程序处理场景图。如图2所示,本申请实施例可以应用于云平台,云平台包括:服务器10、客户端20以及前端30;其中,小程序运行在宿主应用程序的WebView环境下,服务器10可以与客户端20进行通信,为客户端20提供云服务,然后小程序基于客户端20与前端30的通信协议,实现能力的应用;其中,小程序可以通过浏览器及客户端两种方式登录。其中,小程序与云平台的结合是通过搭建小程序的运行环境以及配置文件,使得小程序能够与服务器10进行通信,云平台可以为小程序能力的实现提供云服务,进而构建小程序云平台。小程序云平台包括即时通讯、邮箱、网盘、办公协同等多款云应用。通过小程序与云平台的结合,能够实现小程序能力的应用以及扩展。
在一些可选的场景中,服务器10用于向客户端20下发扩展包,这里的扩展包可以包括用于运行在客户端20的运行环境中的扩展包和用于运行在前端30的运行环境中的扩展包;客户端20用于在接收到服务器10下发的扩展包后进行下载和解析,并将解析后的代码依据代码所属类型,通过与所属类型匹配的扩展接口,分别注入到客户端20的运行环境和前端30的运行环境,因此,不同类型的代码,扩展接口不同,这里新增代码不仅仅限于更新类型(在原有小程序的基础上,修改小程序对应的通信协议),还可以是新增类型(新增小程序对应的通信协议);在两端的环境均配置好后,为了能够直接调起小程序的扩展能力,客户端20可以将运行在客户端20的运行环境中的代码绑定运行在前端30的运行环境中的代码,即客户端20绑定前端30的扩展能力,当绑定成功后,将绑定成功的消息发送至前端30,前端30将调起的扩展能力的协议发送给客户端20,客户端20根据协议调用对应的小程序扩展功能;当小程序扩展能力调用成功后,前端30将扩展能力调用成功的信息回调给客户端20,小程序无需重启扩展功能即可生效。
针对现有技术中小程序能力的扩展方案,只能在原有基础上更新功能,仅仅限于一种类型的扩展,导致扩展能力具有局限性的技术问题,本申请通过预设的扩展插口,增加两种扩展类型,包括更新类型和新增类型,当服务器向客户端下发扩展包后,客户端通过下载和解析扩展包可以通过该扩展包中代码对应的扩展类型的标注,能够确定扩展的代码所属类型,进而通过与扩展的代码所属类型匹配的扩展插口,分别将扩展的代码加载到客户端和前端相应的运行环境中,然后客户端将两个运行环境中的代码进行绑定,进而调用小程序执行相应的扩展功能,使得小程序无需重启扩展能力即可生效。
本申请提供一种小程序处理方法、装置、设备及存储介质,应用于计算机技术领域中的小程序技术,以达到小程序能力的扩展方案,不仅仅限于一种类型的扩展,能够实现小程序扩展能力多样化,具有灵活性的技术效果。
根据本申请的实施例,本申请提供了一种小程序处理方法。如图3所示,是根据本申请实施例的小程序处理方法的流程图。本申请的小程序处理方法,包括如下步骤:
S301、获取新增代码。
其中,新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,第一新增代码和所述第二新增代码用于扩展小程序能力。
其中,小程序运行在宿主应用程序的WebView环境下,必须依赖客户端和前端相互约定好的协议方式才能正常通信,针对小程序能力的扩展,可以是对客户端与前端之间的协议进行修改或新增。在一个示例中,客户端可以通过服务器获取协议对应的新增代码,这里的新增代码可以是对原有的协议进行参数修改或是新增规则,也可以是新增协议。
本实施例的执行主体可以是如图2所示的客户端。其中,客户端(native端)可以是小程序运行的宿主应用程序,该客户端可以安装在终端设备上。前端可以是WLAN网络架构,比如Swan框架。
其中,获取的新增代码是成对出现的,即新增代码可以包括第一新增代码和第二新增代码,第一新增代码和第二新增代码可以一起实现小程序能力的扩展,但是第一新增代码和第二新增代码所运行的环境不同,第一新增代码运行在客户端,第二新增代码运行在前端。
在一些可选的场景中,新增代码可以不仅仅限于一种类型,可以通过服务器同时下发多种类型的新增代码,比如update(更新)、add(新增)两种类型,因此,客户端获取的新增代码可能不仅仅是一对,可能是至少两对,体现了新增代码的多样化,不局限于更新类型,还可以是新增类型,或者还可以是新增类型与更新类型一同实现扩展。
S302、通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境。
其中,为了实现扩展能力的多样化,不局限于更新类型,可以预先设置扩展接口。扩展接口用于传输相应的新增代码给对应的运行环境,因此,扩展接口与具体的新增代码是存在对应关系的,只需找到与新增代码匹配的扩展接口,通过该扩展接口将新增代码分别注入或加载到相应的运行环境中,为实现扩展能力提供运行环境。
其中,客户端将第一新增代码,通过与该第一新增代码匹配的扩展接口,将第一新增代码注入或加载至客户端的运行环境中;客户端将第二新增代码,通过与该第二新增代码匹配的扩展接口,将第二新增代码注入或加载至客户端的运行环境中。与该第一新增代码匹配的扩展接口和与该第二新增代码匹配的扩展接口是相同类型的扩展接口。
S303、将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能。
其中,为了实现小程序扩展能力,使得小程序依赖客户端和前端之间扩展的协议能够正常通信,客户端将在各自运行环境中的代码即第一新增代码和第二新增代码进行绑定,使得客户端和前端进行关联。前端是协议的调取方,即用于调用小程序所依赖的扩展的协议;客户端是协议的实现方,即用于根据扩展的协议,调起小程序的扩展能力,使得小程序能够实现扩展功能。
本实施例中,客户端通过获取用于运行在客户端的第一新增代码和运行在前端第二新增代码,并通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境,然后通过将第一新增代码和第二新增代码的绑定来实现当前运行的小程序的扩展功能。因此,通过增加预设的扩展接口(即扩展插口),使得扩展具有灵活性,不局限于更新类型的扩展,然后通过与新增代码匹配的扩展接口,将第一新增代码和所述第二新增代码进行绑定后,可以控制小程序在运行状态下实现扩展功能,无需重启小程序。
在上述实施例的基础上,本申请还可能存在这样一种场景,服务器向客户端下发扩展包,然后客户端对扩展包进行下载和解析,得到新增代码。在该场景中,对如何获取新增代码,可以通过以下具体过程实现:
步骤a1、通过客户端协议,获取第一扩展包。
步骤a2、通过前端协议,获取第二扩展包。
其中,服务器将扩展包下发到客户端。扩展包无论是更新类型的扩展包还是新增类型的扩展包均下发到客户端。其中,扩展包可以包括至少两个,是成对出现。原因是下发到客户端的扩展包和下发到前端的扩展包不同,一个是前端的扩展包,一个是客户端的扩展包,但是有相同的扩展能力,需要后续进行扩展包的关联,进而实现扩展能力。
服务器在下发扩展包时,可以通过不同的协议进行通信。运行在客户端的扩展包为第一扩展包,运行在前端的扩展包为第二扩展包。其中,服务器通过客户端协议将第一扩展包发送至客户端,客户端通过客户端协议接收到的第一扩展包,是用于在客户端的运行环境中运行的;服务器通过前端协议将第二扩展包发送至客户端,客户端通过客户端协议接收到的第二扩展包,是用于在前端的运行环境中运行的。因此,客户端可以根据获取扩展包的协议不同,确定扩展包是属于运行在客户端还是前端的运行环境中,进而将解析得到的新增代码注入在对应的运行环境中。
步骤a3、解析所述第一扩展包,得到第一新增代码。
步骤a4、解析所述第二扩展包,得到第二新增代码。
其中,所述客户端协议用于表示解析得到的第一新增代码用于运行在客户端的运行环境中,所述前端协议用于表示解析得到的第二新增代码用于运行在前端的运行环境中,所述客户端为小程序运行的宿主应用程序,所述前端为WLAN网络架构。
其中,客户端解析的第一扩展包,得到的是用于运行在客户端的第一新增代码;客户端解析的第二扩展包,得到的是用于运行在前端的第二新增代码。客户端对下载的扩展包进行解压,得到扩展包对应的代码,即JS代码,这里的JS代码中含有扩展类型的标注。根据扩展类型的标注,将新增代码以JS方式下发到前端和客户端。其中,下发到客户端和前端的代码运行环境不同。在一个示例中,客户端可以对前端的扩展包进行解压,同时对客户端的扩展包在小程序运行时进行注入,能够实现动态扩展。
在上述实施例的基础上,本申请还可能存在这样一种场景,即扩展类型与扩展接口存在调用的映射关系。在该场景中,确定匹配的扩展接口之前,可以先确定该新增代码所属扩展类型,然后根据映射关系,查找到与扩展类型匹配的扩展接口。下面将详细介绍通过与所述新增代码匹配的扩展接口,如何将第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境的具体实现过程:
步骤b1、根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口。
其中,新增代码中携带有扩展类型,用以表示该新增代码是新增类型还是更新类型。映射关系为扩展类型与扩展接口之间的调用关系。在一个示例中,新增代码是对小程序所依赖的客户端与前端之间的协议进行修改的,可以是修改协议中的参数或是在协议中新增规则即更新协议,则新增代码中携带有扩展类型是更新类型;新增代码是对小程序所依赖的客户端与前端之间的协议之外新增的协议即新增协议,则新增代码中携带有扩展类型是新增类型。
为了能够实现对匹配的扩展接口的调用功能,扩展类型与扩展接口存在调用的映射关系,在确定了扩展类型之后,通过映射关系可以查找到与扩展类型对应的目标扩展接口并调用。
步骤b2、通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境。
其中,客户端可以通过目标扩展接口,分别将第一新增代码和第二新增代码对应注入至客户端的运行环境和前端的运行环境。需要说明的是,扩展类型不仅限于新增类型和更新类型,相应的,扩展接口同样不仅限于新增类型接口和更新类型接口。
在一个示例中,新增代码可以包括新增类型对应的代码和更新类型对应的代码,客户端将根据不同类型对应的代码,调用不同的扩展接口。其中,与新增类型对应的代码相匹配的目标扩展接口是新增类型接口,客户端通过新增类型接口将新增类型对应的代码(即新增类型对应的第一新增代码和更新类型对应的第二新增代码)分别对应注入至客户端的运行环境和前端的运行环境,即客户端通过新增类型接口将新增类型对应的第一新增代码注入至客户端的运行环境中,通过新增类型接口将新增类型对应的第二新增代码注入至前端的运行环境中;与更新类型对应的代码相匹配的目标扩展接口是更新类型接口,客户端通过更新类型接口将更新类型对应的代码(即更新类型对应的第一新增代码和更新类型对应的第二新增代码)分别对应注入至客户端的运行环境和前端的运行环境,即客户端通过更新类型接口将更新类型对应的第一新增代码注入至客户端的运行环境中,通过更新类型接口将更新类型对应的第二新增代码注入至前端的运行环境中。通过扩展接口的自定义设置,不同的扩展类型可以使用不同的扩展接口进行数据传输、通信,可以实现扩展能力的多样化,区别于现有技术中仅仅可以实现更新类型的扩展而导致扩展能力的局限性。
在上述实施例的基础上,本申请还可能存在这样一种场景,新增代码是JS代码。其中,JS即Javascript,Javascript是一种脚本语言,Javascript可以使网页增加互动性,使有规律地重复的HTML文段简化,减少下载时间;并且JavaScript能及时响应用户的操作。在该场景下,如何将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境,可以通过下属步骤具体实现:
步骤c1、通过所述目标扩展接口,将所述第二新增代码加载至前端的运行环境,使得所述第二新增代码在WebView环境下运行。
其中,通过目标扩展接口,为注入前端的运行环境提供目标注入通道,通过该目标注入通道,将第二新增代码加载在WebView环境中,使得第二新增代码在WebView环境下运行。
可选的,扩展类型包括新增类型和更新类型;若扩展类型为新增类型,则调用的目标扩展接口为新增类型接口;若扩展类型为更新类型,则调用目标扩展接口为更新类型接口。
其中,在前端中预设扩展插口(即扩展接口),增加两种扩展类型,包括更新类型和新增类型。增加了预设扩展插口,使得扩展具有灵活性,然后根据预设扩展插口的规则,采用相应的注入通道实现包下发至前端的运行环境和在小程序运行时注入客户端的运行环境,当环境准备好后,进行绑定和回调,小程序无需重启即可实现扩展能力。
在一个示例中,注入的过程是由客户端发起的。若扩展类型的标注为更新类型,则目标扩展接口为更新类型接口,根据更新类型接口,通过更新通道,将新增代码进行注入;若扩展类型的标注为新增类型,则目标扩展接口为新增类型接口,根据新增类型接口,通过新增通道,将新增代码进行注入。将新增代码注入在前端的运行环境是WebView环境,在WebView环境中运行的是第二新增代码。
步骤c2、在小程序运行时,将所述第一新增代码加载至所述客户端的运行环境,使得所述第一新增代码在jscore环境下运行。
其中,为了实现动态扩展,小程序无需重新启动的情况下,使得扩展能力能够生效,客户端在小程序运行时,将运行在jscore环境中的第一新增代码进行注入,使得第二新增代码能够在jscore环境中运行。然后等到两个运行环境准备好后,在小程序运行过程中,将两个运行环境中的代码进行绑定,使得协议的调取和协议的实现形成关联,进而通过扩展的协议实现客户端和前端的通信,使得小程序可以依赖客户端和前端的扩展的协议实现扩展能力的通信。
可选的,在上述实施例的基础上,对如何将第一新增代码和第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能进行详细说明,可以通过下面具体步骤实现:
步骤d1、将运行的第一新增代码绑定运行的第二新增代码,并向前端发送用于表示绑定成功的通知信息。
其中,当前端注入的第二新增代码和客户端注入的第一新增代码都成功后即两个运行环境都准备好后,由客户端发起通知,通知前端两端的新增代码已经完成绑定,使得协议和实现功能形成一对一关系。
步骤d2、接收前端发送的运行的第二新增代码对应的扩展通信协议,并根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,使得当前运行的小程序执行扩展功能。
其中,小程序当前在调起能力的时候,前端将扩展通信协议发送给客户端,客户端通过扩展通信协议,调用扩展能力函数,使得当前运行的小程序执行扩展功能,当小程序的扩展功能生效后,前端将实现的能力进行回调,用以提示客户端小程序的扩展能力得以实现。
在一个示例中,在jscore环境下运行的第一新增代码用以提供扩展能力函数,在WebView环境下运行的第二新增代码用以提供扩展通信协议,在协议的调用和协议的实现形成绑定关系后,在不影响小程序重启的情况下,在小程序运行过程中,采用热插拔机制,能够及时生效、实现动态扩展。
可选的,在上述实施例的基础上,对如何根据扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,使得当前运行的小程序执行扩展功能进行详细说明,可以通过下面具体步骤实现:
步骤e1、根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,用以指示当前运行的小程序调用扩展功能。
步骤e2、若接收到前端发送的用于表示小程序调用扩展功能成功的指示信息,确定小程序调用扩展功能成功。
其中,根据扩展通信协议,调用在jscore环境下运行的第一新增代码中的扩展能力函数,当前运行的小程序无需重启即可实现扩展功能的调用,使得扩展能力得以实现。当小程序调起的扩展能力实现后,前端将用于表示小程序调用扩展功能成功的指示信息发送给客户端,用于通知客户端小程序调用扩展功能成功。
本申请的实施例不但在原有基础上能够实现扩展更新方法,还能够实现新增方法,并且当前小程序无需重启,扩展能力即可生效。
根据本申请的实施例,本申请还提供了一种小程序处理方法。如图4所示,是根据本申请实施例的小程序处理方法的流程图。本申请的小程序处理方法,应用于前端,包括如下步骤:
S401、通过与用于运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境。
其中,在对前端的运行环境注入第二新增代码的过程中,通过与第二新增代码匹配的扩展接口,利用客户端在与扩展接口提供的通道中实现注入。将新增代码注入在前端的运行环境是WebView环境,在WebView环境中运行的是第二新增代码,具体注入过程与上述实施例相同,在此不再赘述。
S402、在客户端通过与用于运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能。
其中,当前端注入的第二新增代码和客户端注入的第一新增代码都成功后即两个运行环境都准备好后,由客户端发起通知,通知前端两端的新增代码已经完成绑定,使得协议和实现功能形成一对一关系。前端在接收到客户端通知绑定成功的消息后,前端前端将扩展通信协议发送给客户端,客户端通过扩展通信协议,调用扩展能力函数,使得当前运行的小程序执行扩展功能,当小程序的扩展功能生效后,前端将小程序实现的能力进行回调,用以提示客户端小程序的扩展能力得以实现。
在一个示例中,在jscore环境下运行的第一新增代码用以提供扩展能力函数,在WebView环境下运行的第二新增代码用以提供扩展通信协议,在协议的调用和协议的实现形成绑定关系后,在不影响小程序重启的情况下,在小程序运行过程中,采用热插拔机制,能够及时生效、实现动态扩展。
本实施例中,通过与运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境,在客户端通过与运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能,通过增加预设的扩展接口(即扩展插口),使得扩展具有灵活性,不局限于更新类型的扩展,然后通过与新增代码匹配的扩展接口,将第一新增代码和所述第二新增代码进行绑定后,进而使得小程序在运行状态下实现扩展功能,无需重启小程序。
可选的,向客户端发送运行的第二新增代码对应的扩展通信协议之后,所述方法还包括:若当前运行的小程序调用扩展功能成功后,向客户端发送用于表示小程序调用扩展功能成功的指示信息。
其中,向客户端发送运行的第二新增代码对应的扩展通信协议之后,由于客户端根据扩展通信协议,调用在jscore环境下运行的第一新增代码中的扩展能力函数,使得当前运行的小程序无需重启即可实现扩展功能的调用,进而使得扩展能力得以实现。当小程序调起的扩展能力实现后,前端将用于表示小程序调用扩展功能成功的指示信息发送给客户端,用于通知客户端小程序调用扩展功能成功。
在一个示例中,参见图5所示,图5是可以实现本申请实施例的小程序能力扩展场景图。小程序的前端框架(Swan)预设Extension(扩展)的插口,增加update、add两种类型;小程序的Native端(客户端)的新增代码以js方式下发,在jscore环境下运行,提供运行时注入通道;前端的扩展包(update、add)下发到Native端本地后,待Native端的代码下发成功后,双端环境同时准备好,Native端绑定前端扩展能力,前端框架回调事件给Native端,当前小程序再次调用扩展方法。在不影响小程序重启的情况下,运行过程中,采用热插拔机制:及时生效、动态扩展。
本申请的实施例中,客户端在接收到服务器下发的扩展包后进行下载和解析,并将解析后的代码依据代码所属类型,通过与所属类型匹配的扩展接口,分别注入到客户端的运行环境和前端的运行环境,因此,不同类型的代码,扩展接口不同,这里新增代码不仅仅限于更新类型(在原有小程序的基础上,修改小程序对应的通信协议),还可以是新增类型(新增小程序对应的通信协议);在两端的环境均配置好后,为了能够直接调起小程序的扩展能力,客户端可以将运行在客户端的运行环境中的代码绑定运行在前端的运行环境中的代码,即客户端绑定前端的扩展能力,当绑定成功后,将绑定成功的消息发送至前端,前端将调起的扩展能力的协议发送给客户端,客户端根据协议调用对应的小程序扩展功能;当小程序扩展能力调用成功后,前端将扩展能力调用成功的信息回调给客户端,小程序无需重启扩展功能即可生效。因此,本申请能有效的避免小程序重启,减少打断用户体验;并且有利于小程序开发者进行线上调试。
根据本申请的实施例,本申请还提供了一种小程序处理装置。如图6所示,是根据本申请实施例的小程序处理装置的结构示意图。本申请的小程序处理装置60包括:新增代码获取模块61、代码注入模块62和扩展功能执行模块63;其中,新增代码获取模块61,用于获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;代码注入模块62,用于通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;扩展功能执行模块63,用于将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能。
可选的,所述代码注入模块62,具体用于:根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口,所述映射关系为所述扩展类型与所述扩展接口之间的调用关系;通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境。
可选的,所述新增代码是JS代码;所述代码注入模块62,还具体用于:通过所述目标扩展接口,将所述第二新增代码加载至前端的运行环境,使得所述第二新增代码在WebView环境下运行;在小程序运行时,将所述第一新增代码加载至所述客户端的运行环境,使得所述第一新增代码在jscore环境下运行。
可选的,所述扩展类型包括新增类型和更新类型;所述装置还包括:扩展接口调用模块;所述扩展接口调用模块,用于在所述扩展类型为新增类型时,调用的所述目标扩展接口为新增类型接口;在所述扩展类型为更新类型时,调用所述目标扩展接口为更新类型接口。
可选的,所述扩展功能执行模块63,具体用于:将运行的第一新增代码绑定运行的第二新增代码,并向前端发送用于表示绑定成功的通知信息;接收前端发送的运行的第二新增代码对应的扩展通信协议,并根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,使得当前运行的小程序执行扩展功能。
可选的,所述扩展功能执行模块63,还具体用于:根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,用以指示当前运行的小程序调用扩展功能;若接收到前端发送的用于表示小程序调用扩展功能成功的指示信息,确定小程序调用扩展功能成功。
可选的,所述新增代码获取模块61,具体用于:通过客户端协议,获取第一扩展包;通过前端协议,获取第二扩展包;解析所述第一扩展包,得到第一新增代码;解析所述第二扩展包,得到第二新增代码;其中,所述客户端协议用于表示解析得到的第一新增代码用于运行在客户端的运行环境中,所述前端协议用于表示解析得到的第二新增代码用于运行在前端的运行环境中,所述客户端为小程序运行的宿主应用程序,所述前端为WLAN网络架构。
图6所示实施例的小程序处理装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例中,客户端通过获取用于运行在客户端的第一新增代码和运行在前端第二新增代码,并通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境,然后通过将第一新增代码和第二新增代码的绑定来实现当前运行的小程序的扩展功能。因此,通过增加预设的扩展接口(即扩展插口),使得扩展具有灵活性,不局限于更新类型的扩展,然后通过与新增代码匹配的扩展接口,将第一新增代码和所述第二新增代码进行绑定后,可以控制小程序在运行状态下实现扩展功能,无需重启小程序。
根据本申请的实施例,本申请还提供了一种小程序处理装置。如图7所示,是根据本申请实施例的小程序处理装置的结构示意图。本申请的小程序处理装置70包括:处理模块71和执行模块72;其中,处理模块71,用于通过与运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境;执行模块72,用于在客户端通过与运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能。
可选的,所述装置还包括:回调模块;所述回调模块,用于向客户端发送运行的第二新增代码对应的扩展通信协议之后,若当前运行的小程序调用扩展功能成功后,向客户端发送用于表示小程序调用扩展功能成功的指示信息。
图7所示实施例的小程序处理装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例中,通过与运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境,在客户端通过与运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能,通过增加预设的扩展接口(即扩展插口),使得扩展具有灵活性,不局限于更新类型的扩展,然后通过与新增代码匹配的扩展接口,将第一新增代码和所述第二新增代码进行绑定后,进而使得小程序在运行状态下实现扩展功能,无需重启小程序。
可选的,参见图8所示,本申请还提供了一种小程序处理,应用于客户端,包括:S801、获取新增代码,所述新增代码包括第一新增代码和第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;S802、根据所述第一新增代码和所述第二新增代码,控制当前运行的小程序执行相应的扩展功能。
本实施例中,客户端通过获取第一新增代码和第二新增代码,并根据第一新增代码和第二新增代码来控制当前运行的小程序执行相应的扩展功能,使得扩展具有灵活性,不局限于新增代码的扩展类型,可以控制小程序在运行状态下实现扩展功能,无需重启小程序。
可选的,参见图9所示,本申请还提供了一种小程序处理,应用于前端,包括:S901、通过客户端将用于运行在前端的第二新增代码注入至前端的运行环境;S902、在客户端将用于运行在客户端的第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则指示客户端控制当前运行的小程序执行相应的扩展功能,所述第一新增代码和所述第二新增代码用于扩展小程序能力。
本实施例中,通过客户端将所述第二新增代码注入至前端的运行环境,在客户端将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则指示客户端控制当前运行的小程序执行相应的扩展功能,使得扩展具有灵活性,不局限于新增代码的扩展类型,并通过将第一新增代码和所述第二新增代码进行绑定后,进而使得小程序在运行状态下实现扩展功能,无需重启小程序。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
根据本申请的实施例,本申请还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
如图10所示,是根据本申请实施例的小程序处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图10所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图10中以一个处理器1001为例。
存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的小程序处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的小程序处理方法。
存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的小程序处理方法对应的程序指令/模块(例如,附图6所示的新增代码获取模块61、代码注入模块62和扩展功能执行模块63,和/或附图7所示处理模块71和执行模块72)。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的小程序处理方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据小程序处理方法的电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至小程序处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
小程序处理方法的电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。
输入装置1003可接收输入的数字或字符信息,以及产生与小程序处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。其中,输入装置和输出装置可以是V2V通信模组,用于接收来自外部设备的V2X消息,或者向外界发送V2X消息。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (18)
1.一种小程序处理方法,应用于客户端,所述方法包括:
获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;
根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口,所述映射关系为所述扩展类型与所述扩展接口之间的调用关系;所述扩展类型包括新增类型和更新类型;若所述扩展类型为新增类型,则调用的所述目标扩展接口为新增类型接口;若所述扩展类型为更新类型,则调用所述目标扩展接口为更新类型接口;
通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;
将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能。
2.根据权利要求1所述的方法,其中,所述新增代码是JS代码;
所述通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境,包括:
通过所述目标扩展接口,将所述第二新增代码加载至前端的运行环境,使得所述第二新增代码在WebView环境下运行;
在小程序运行时,将所述第一新增代码加载至所述客户端的运行环境,使得所述第一新增代码在jscore 环境下运行。
3.根据权利要求1或2所述的方法,其中,所述将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能,包括:
将运行的第一新增代码绑定运行的第二新增代码,并向前端发送用于表示绑定成功的通知信息;
接收前端发送的运行的第二新增代码对应的扩展通信协议,并根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,使得当前运行的小程序执行扩展功能。
4.根据权利要求3所述的方法,其中,所述根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,使得当前运行的小程序执行扩展功能,包括:
根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,用以指示当前运行的小程序调用扩展功能;
若接收到前端发送的用于表示小程序调用扩展功能成功的指示信息,确定小程序调用扩展功能成功。
5.根据权利要求1所述的方法,其中,所述获取新增代码,包括:
通过客户端协议,获取第一扩展包;
通过前端协议,获取第二扩展包;
解析所述第一扩展包,得到第一新增代码;
解析所述第二扩展包,得到第二新增代码;
其中,所述客户端协议用于表示解析得到的第一新增代码用于运行在客户端的运行环境中,所述前端协议用于表示解析得到的第二新增代码用于运行在前端的运行环境中,所述客户端为小程序运行的宿主应用程序,所述前端为WLAN网络架构。
6.一种小程序处理方法,应用于前端,所述方法包括:
通过与用于运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境;所述客户端用于获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;并根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口,所述映射关系为所述扩展类型与所述扩展接口之间的调用关系;所述扩展类型包括新增类型和更新类型;若所述扩展类型为新增类型,则调用的所述目标扩展接口为新增类型接口;若所述扩展类型为更新类型,则调用所述目标扩展接口为更新类型接口;通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;
在客户端通过与用于运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能。
7.根据权利要求6所述的方法,其中,向客户端发送运行的第二新增代码对应的扩展通信协议之后,所述方法还包括:
若当前运行的小程序调用扩展功能成功后,向客户端发送用于表示小程序调用扩展功能成功的指示信息。
8.一种小程序处理装置,包括:
新增代码获取模块,用于获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;
代码注入模块,用于通过与所述新增代码匹配的扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;
扩展功能执行模块,用于将所述第一新增代码和所述第二新增代码进行绑定,控制当前运行的小程序执行相应的扩展功能;
其中,所述代码注入模块,具体用于:
根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口,所述映射关系为所述扩展类型与所述扩展接口之间的调用关系;所述扩展类型包括新增类型和更新类型;所述装置还包括:扩展接口调用模块;所述扩展接口调用模块,用于:在所述扩展类型为新增类型时,调用的所述目标扩展接口为新增类型接口;在所述扩展类型为更新类型时,调用所述目标扩展接口为更新类型接口;
通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境。
9.根据权利要求8所述的装置,其中,所述新增代码是JS代码;
所述代码注入模块,还具体用于:
通过所述目标扩展接口,将所述第二新增代码加载至前端的运行环境,使得所述第二新增代码在WebView环境下运行;
在小程序运行时,将所述第一新增代码加载至所述客户端的运行环境,使得所述第一新增代码在jscore 环境下运行。
10.根据权利要求8-9任一项所述的装置,其中,所述扩展功能执行模块,具体用于:
将运行的第一新增代码绑定运行的第二新增代码,并向前端发送用于表示绑定成功的通知信息;
接收前端发送的运行的第二新增代码对应的扩展通信协议,并根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,使得当前运行的小程序执行扩展功能。
11.根据权利要求10所述的装置,其中,所述扩展功能执行模块,还具体用于:
根据所述扩展通信协议,调用运行的第一新增代码对应的扩展能力函数,用以指示当前运行的小程序调用扩展功能;
若接收到前端发送的用于表示小程序调用扩展功能成功的指示信息,确定小程序调用扩展功能成功。
12.根据权利要求11所述的装置,其中,所述新增代码获取模块,具体用于:
通过客户端协议,获取第一扩展包;
通过前端协议,获取第二扩展包;
解析所述第一扩展包,得到第一新增代码;
解析所述第二扩展包,得到第二新增代码;
其中,所述客户端协议用于表示解析得到的第一新增代码用于运行在客户端的运行环境中,所述前端协议用于表示解析得到的第二新增代码用于运行在前端的运行环境中,所述客户端为小程序运行的宿主应用程序,所述前端为WLAN网络架构。
13.一种小程序处理装置,包括:
处理模块,用于通过与运行在前端的第二新增代码匹配的扩展接口,利用客户端将所述第二新增代码注入至前端的运行环境;所述客户端用于获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;并根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口,所述映射关系为所述扩展类型与所述扩展接口之间的调用关系;所述扩展类型包括新增类型和更新类型;若所述扩展类型为新增类型,则调用的所述目标扩展接口为新增类型接口;若所述扩展类型为更新类型,则调用所述目标扩展接口为更新类型接口;通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;
执行模块,用于在客户端通过与运行在客户端的第一新增代码匹配的扩展接口将所述第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则向客户端发送运行的第二新增代码对应的扩展通信协议,用以指示客户端控制当前运行的小程序执行相应的扩展功能。
14.根据权利要求13所述的装置,其中,所述装置还包括:回调模块;
所述回调模块,用于:向客户端发送运行的第二新增代码对应的扩展通信协议之后,若当前运行的小程序调用扩展功能成功后,向客户端发送用于表示小程序调用扩展功能成功的指示信息。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
17.一种小程序处理方法,应用于客户端,所述方法包括:
获取新增代码,所述新增代码包括第一新增代码和第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;
根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口,所述映射关系为所述扩展类型与所述扩展接口之间的调用关系;所述扩展类型包括新增类型和更新类型;若所述扩展类型为新增类型,则调用的所述目标扩展接口为新增类型接口;若所述扩展类型为更新类型,则调用所述目标扩展接口为更新类型接口;
通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;
根据所述第一新增代码和所述第二新增代码,控制当前运行的小程序执行相应的扩展功能。
18.一种小程序处理方法,应用于前端,所述方法包括:
通过客户端将用于运行在前端的第二新增代码注入至前端的运行环境;所述客户端用于获取新增代码,所述新增代码包括用于运行在客户端的第一新增代码和运行在前端第二新增代码,所述第一新增代码和所述第二新增代码用于扩展小程序能力;并根据所述新增代码中携带的扩展类型,通过映射关系,调用与所述扩展类型匹配的目标扩展接口,所述映射关系为所述扩展类型与所述扩展接口之间的调用关系;所述扩展类型包括新增类型和更新类型;若所述扩展类型为新增类型,则调用的所述目标扩展接口为新增类型接口;若所述扩展类型为更新类型,则调用所述目标扩展接口为更新类型接口;通过所述目标扩展接口,将所述第一新增代码和第二新增代码分别对应注入至客户端的运行环境和前端的运行环境;
在客户端将用于运行在客户端的第一新增代码注入至客户端的运行环境后,若接收到客户端发送的用于表示第一新增代码与第二新增代码绑定成功的通知信息,则指示客户端控制当前运行的小程序执行相应的扩展功能,所述第一新增代码和所述第二新增代码用于扩展小程序能力。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604377.3A CN111782218B (zh) | 2020-06-29 | 2020-06-29 | 小程序处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604377.3A CN111782218B (zh) | 2020-06-29 | 2020-06-29 | 小程序处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782218A CN111782218A (zh) | 2020-10-16 |
CN111782218B true CN111782218B (zh) | 2024-03-01 |
Family
ID=72760252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010604377.3A Active CN111782218B (zh) | 2020-06-29 | 2020-06-29 | 小程序处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782218B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433788A (zh) * | 2020-11-23 | 2021-03-02 | 百度在线网络技术(北京)有限公司 | 小程序运行方法、装置、电子设备和存储介质 |
CN112925583B (zh) * | 2021-02-25 | 2023-10-27 | 北京百度网讯科技有限公司 | 宿主应用能力扩展方法、装置、设备以及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2423517A1 (en) * | 2003-03-26 | 2004-09-26 | Timothy G. Deboer | Extensible mechanism for executing server side code |
US9471299B1 (en) * | 2013-03-25 | 2016-10-18 | Amazon Technologies, Inc. | Updating code within an application |
CN108647028A (zh) * | 2018-05-09 | 2018-10-12 | 广州腾讯科技有限公司 | 应用程序信息处理方法和装置 |
CN109739770A (zh) * | 2019-01-04 | 2019-05-10 | 百度在线网络技术(北京)有限公司 | 小程序的调试方法及装置 |
CN110659057A (zh) * | 2019-09-24 | 2020-01-07 | 腾讯科技(深圳)有限公司 | 应用程序热更新方法、装置、存储介质及计算机设备 |
CN110865855A (zh) * | 2019-11-18 | 2020-03-06 | 百度在线网络技术(北京)有限公司 | 小程序处理方法及相关设备 |
CN111026462A (zh) * | 2019-12-10 | 2020-04-17 | 百度在线网络技术(北京)有限公司 | 小程序控制方法、装置、设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694988B2 (en) * | 2010-10-22 | 2014-04-08 | Adobe Systems Incorporated | Runtime extensions |
-
2020
- 2020-06-29 CN CN202010604377.3A patent/CN111782218B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2423517A1 (en) * | 2003-03-26 | 2004-09-26 | Timothy G. Deboer | Extensible mechanism for executing server side code |
US9471299B1 (en) * | 2013-03-25 | 2016-10-18 | Amazon Technologies, Inc. | Updating code within an application |
CN108647028A (zh) * | 2018-05-09 | 2018-10-12 | 广州腾讯科技有限公司 | 应用程序信息处理方法和装置 |
CN109739770A (zh) * | 2019-01-04 | 2019-05-10 | 百度在线网络技术(北京)有限公司 | 小程序的调试方法及装置 |
CN110659057A (zh) * | 2019-09-24 | 2020-01-07 | 腾讯科技(深圳)有限公司 | 应用程序热更新方法、装置、存储介质及计算机设备 |
CN110865855A (zh) * | 2019-11-18 | 2020-03-06 | 百度在线网络技术(北京)有限公司 | 小程序处理方法及相关设备 |
CN111026462A (zh) * | 2019-12-10 | 2020-04-17 | 百度在线网络技术(北京)有限公司 | 小程序控制方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111782218A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767069B (zh) | 小程序处理方法、服务器、设备及存储介质 | |
CN111475259B (zh) | 小程序加载方法、装置及电子设备 | |
CN110704136A (zh) | 小程序组件的渲染方法、客户端、电子设备及存储介质 | |
CN111625738B (zh) | App目标页面的唤起方法、装置、设备和存储介质 | |
CN111782218B (zh) | 小程序处理方法、装置、设备及存储介质 | |
JP7167222B2 (ja) | アプレットデータの取得方法、装置、機器及び記憶媒体 | |
CN111158799A (zh) | 一种页面渲染方法、装置、电子设备及存储介质 | |
CN111694564A (zh) | Flutter混合模式的编译方法、装置、设备和介质 | |
CN111881387B (zh) | 用于小程序的数据处理方法、装置、设备和介质 | |
CN112235417B (zh) | 调试指令的发送方法、装置 | |
KR102546577B1 (ko) | 미니 프로그램 데이터 처리 방법 및 장치 | |
CN111478956A (zh) | 小程序包的部署、预览方法和装置 | |
CN111885114B (zh) | 网关中的应用程序接口模块的升级方法、设备及存储介质 | |
CN113254217A (zh) | 业务的消息处理方法、装置及电子设备 | |
CN113094139B (zh) | Ui样式更新方法和装置 | |
CN111782229B (zh) | 一种小程序启动方法、装置及电子设备 | |
CN112069137B (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
CN110543372A (zh) | 移动终端原生端与h5端交互的方法及装置 | |
CN114416578A (zh) | 测试方法和装置 | |
CN112130888B (zh) | 应用程序更新的方法、装置、设备和计算机存储介质 | |
CN111698243B (zh) | 参数配置方法、装置、电子设备和存储介质 | |
CN111522599B (zh) | 用于发送信息的方法和装置 | |
CN112764746B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111741053B (zh) | 数据预下载方法、装置、服务器、终端及存储介质 | |
JP7147123B2 (ja) | ソースチャネル決定方法、装置、機器、プログラム及びコンピューター記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |