本申请涉及计算机技术领域,特别是涉及一种小程序的可用性检查方法、一种小程序的可用性检查装置、一种可用小程序列表生成方法和一种可用小程序列表生成装置。
背景技术:
物联网是互联网之后的又一次飞跃。进入物联网时代后,数据和应用成千上万倍的增长,旧有的开发方式渐渐难以满足业务需求。业内都在探索能够实现快速开发、快速修复、热部署等特征,并保障用户体验的技术方案,小程序是其中的代表之一。
小程序是可以从服务器下发,无需安装即可在特定容器内执行的应用程序。
提供运行环境的sdk(softwaredevelopkit,软件开发套件)是小程序运行的基础,而sdk本身也存在版本迭代。因此不同版本的sdk,代表着不同能力的运行环境,进而导致了小程序的可用性问题,基于高版本sdk开发的小程序,无法在低版本的sdk上正常执行。而在开放的业务场景下,多sdk的需求,导致native客户端的运行环境愈加分裂。
随着小程序数量的增加,和集成sdk的客户端数量的不断增加,如何解决小程序的可用性问题,将是小程序的生态能否最终成型的关键。
技术实现要素:
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种小程序的可用性检查方法、一种小程序的可用性检查装置、一种可用小程序列表生成方法和一种可用小程序列表生成装置。
为了解决上述问题,本申请实施例公开了一种小程序的可用性检查方法,包括:
确定宿主程序的apilevel和sdk列表;
确定小程序依赖的apilevel和sdk列表;
判断所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表的是否匹配;
若匹配,则确定所述小程序在所述宿主程序中可用;
若不匹配,则确定所述小程序在所述宿主程序中不可用。
优选的,所述小程序包括:javascript小程序;所述确定小程序依赖的apilevel和sdk列表的步骤包括:
确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
根据所述javascript基础sdk确定关联的native容器sdk;
根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
根据所述javascript功能sdk确定依赖的native功能sdk;
根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
本申请实施例还公开了一种小程序的可用性检查方法,包括:
获取宿主程序的可用小程序列表;所述可用小程序列表中记录有预先检测为可用的小程序,所述可用的小程序所依赖的apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配;
确定当前小程序是否在所述小程序可用列表中;
若是,则确定所述当前小程序在所述宿主程序中可用;
若否,则确定所述当前小程序在所述宿主程序中不可用。
优选的,所述获取宿主程序的可用小程序列表的步骤包括:
确定宿主程序的版本标识;
将所述版本标识发送至服务器;
接收所述服务器返回的与宿主程序的版本标识对应的可用小程序列表。
优选的,所述可用小程序列表通过如下方式生成:
配置宿主程序的apilevel和sdk列表;
确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
将所述目标小程序添加到可用小程序列表。
优选的,所述可用小程序列表的生成方式还包括:
确定所述宿主程序是否具有在先配置的小程序;
若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;
若不可用,则对所述在先配置的小程序进行移除处理;
若可用,则将所述在先配置的小程序添加到可用小程序列表。
优选的,所述配置宿主程序的apilevel和sdk列表的步骤包括:
配置宿主程序的当前版本标识;
对当前版本标识的宿主程序配置apilevel和sdk列表。
优选的,所述小程序包括:javascript小程序;所述确定小程序依赖的apilevel和sdk列表的步骤包括:
确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
根据所述javascript基础sdk确定关联的native容器sdk;
根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
根据所述javascript功能sdk确定依赖的native功能sdk;
根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
优选的,所述判断所述在先配置的小程序的可用性的步骤包括:
判断所述在先配置的小程序是否缺少依赖的native功能sdk。
本申请实施例还公开了一种可用小程序列表生成方法,包括:
配置宿主程序的apilevel和sdk列表;
确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
将所述目标小程序添加到可用小程序列表。
优选的,还包括:
确定所述宿主程序是否具有在先配置的小程序;
若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;
若不可用,则对所述在先配置的小程序进行移除处理;
若可用,则将所述在先配置的小程序添加到可用小程序列表。
优选的,所述配置宿主程序的apilevel和sdk列表的步骤包括:
配置宿主程序的当前版本标识;
对当前版本标识的宿主程序配置apilevel和sdk列表。
优选的,所述小程序包括:javascript小程序;所述确定小程序依赖的apilevel和sdk列表的步骤包括:
确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
根据所述javascript基础sdk确定关联的native容器sdk;
根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
根据所述javascript功能sdk确定依赖的native功能sdk;
根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
优选的,所述判断所述在先配置的小程序的可用性的步骤包括:
判断所述在先配置的小程序是否缺少依赖的native功能sdk。
本申请实施例还公开了一种小程序的可用性检查装置,包括:
宿主程序信息确定模块,用于确定宿主程序的apilevel和sdk列表;
小程序信息确定模块,用于确定小程序依赖的apilevel和sdk列表;
判断模块,用于判断所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表的是否匹配;
第一可用性确定模块,用于若所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表的匹配,则确定所述小程序在所述宿主程序中可用;
第二可用性确定模块,用于若所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表不匹配,则确定所述小程序在所述宿主程序中不可用。
优选的,所述小程序包括:javascript小程序;所述小程序信息确定模块包括:
第一套件确定子模块,用于确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
第二套件确定子模块,用于根据所述javascript基础sdk确定关联的native容器sdk;
等级确定子模块,用于根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
第三套件确定子模块,用于根据所述javascript功能sdk确定依赖的native功能sdk;
第四套件确定子模块,用于根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
本申请实施例还公开了一种小程序的可用性检查装置,包括:
可用列表获取模块,用于获取宿主程序的可用小程序列表;所述可用小程序列表中记录有预先检测为可用的小程序,所述可用的小程序所依赖的apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配;
小程序确定模块,用于确定当前小程序是否在所述小程序可用列表中;
第一可用性确定模块,用于若所述当前小程序在所述小程序可用列表中,则确定所述当前小程序在所述宿主程序中可用;
第二可用性确定模块,用于若所述当前小程序不在所述小程序可用列表中,则确定所述当前小程序在所述宿主程序中不可用。
优选的,所述可用列表获取模块包括:
版本标识确定子模块,用于确定宿主程序的版本标识;
版本标识发送子模块,用于将所述版本标识发送至服务器;
可用列表接收子模块,用于接收所述服务器返回的与宿主程序的版本标识对应的可用小程序列表。
优选的,所述可用小程序列表通过如下模块生成:
宿主程序信息配置模块,用于配置宿主程序的apilevel和sdk列表;
小程序信息确定模块,用于确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
目标小程序确定模块,用于从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
第一目标小程序添加模块,用于将所述目标小程序添加到可用小程序列表。
优选的,所述可用小程序列表的生成模块还包括:
在先小程序确定模块,用于确定所述宿主程序是否具有在先配置的小程序;
第三可用性确定模块,用于若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;
移除模块,用于若所述在先配置的小程序不可用,则对所述在先配置的小程序进行移除处理;
第二目标小程序添加模块,用于若所述在先配置的小程序可用,则将所述在先配置的小程序添加到可用小程序列表。
优选的,所述宿主程序信息配置模块包括:
版本标识配置子模块,用于配置宿主程序的当前版本标识;
宿主程序信息配置子模块,用于对当前版本标识的宿主程序配置apilevel和sdk列表。
优选的,所述小程序包括:javascript小程序;所述小程序信息确定模块包括:
第一套件确定子模块,用于确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
第二套件确定子模块,用于根据所述javascript基础sdk确定关联的native容器sdk;
等级确定子模块,用于根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
第三套件确定子模块,用于根据所述javascript功能sdk确定依赖的native功能sdk;
第四套件确定子模块,用于根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
优选的,所述第三可用性确定模块包括:
套件判断子模块,用于判断所述在先配置的小程序是否缺少依赖的native功能sdk。
本申请实施例还公开了一种可用小程序列表生成装置,包括:
宿主程序信息配置模块,用于配置宿主程序的apilevel和sdk列表;
小程序信息确定模块,用于确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
目标小程序确定模块,用于从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
第一目标小程序添加模块,用于将所述目标小程序添加到可用小程序列表。
优选的,还包括:
在先小程序确定模块,用于确定所述宿主程序是否具有在先配置的小程序;
可用性判断模块,用于若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;
移除模块,用于若所述在先配置的小程序不可用,则对所述在先配置的小程序进行移除处理;
第二目标小程序添加模块,用于若所述在先配置的小程序可用,则将所述在先配置的小程序添加到可用小程序列表。
优选的,所述宿主程序信息配置模块包括:
版本标识配置子模块,用于配置宿主程序的当前版本标识;
宿主程序信息配置子模块,用于对当前版本标识的宿主程序配置apilevel和sdk列表。
优选的,所述小程序包括:javascript小程序;所述小程序信息确定模块包括:
第一套件确定子模块,用于确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
第二套件确定子模块,用于根据所述javascript基础sdk确定关联的native容器sdk;
等级确定子模块,用于根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
第三套件确定子模块,用于根据所述javascript功能sdk确定依赖的native功能sdk;
第四套件确定子模块,用于根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
优选的,所述可用性判断模块包括:
套件判断子模块,用于判断所述在先配置的小程序是否缺少依赖的native功能sdk。
本申请实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。
本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如上所述的一个或多个的方法。
本申请实施例包括以下优点:
本申请实施例中,提出了一种小程序可用性的检测方法。通过对应用程序的sdk设定一个apilevel,当对应用程序增添小程序时,根据小程序所依赖的apilevel和sdk列表以及应用程序的apilevel和sdk列表,检测小程序的可用性。从而解决了满足了开发者在自身开发的应用程序中,检测小程序可用性的需求。
附图说明
图1是本申请的一种小程序的可用性检查方法实施例1的步骤流程图;
图2是本申请的一种小程序的可用性检查方法实施例2的步骤流程图;
图3是本申请的一种可用小程序列表生成方法实施例的步骤流程图;
图4是本申请实施例中一种可用小程序列表生成方法的流程图;
图5是本申请的一种小程序的可用性检查装置实施例1的结构框图;
图6是本申请的一种小程序的可用性检查装置实施例2的结构框图;
图7是本申请的一种可用小程序列表生成装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在开放的场景下,开发者对于开放平台的需求各不相同,某些开发者需要完整的功能,而更多的开发者只需要其中一部分的功能。为了满足这部分开发者对于sdk接入成本、运行性能方面的要求,sdk提供商通常会以功能为维度,提供多个sdk,开发者可以根据自己的业务需要,集成需要的sdk,而不必接入完整的sdk,使得不同的应用程序集成了不同的sdk。
在移动端环境下,native(意为原生语言,在移动端环境下,通常指的是android和ios)应用程序的sdk可以采用apilevel表征,同一个apilevel的各个sdk之间保证兼容性。当新增或移除sdk,或者某个sdk的特性发生新增或修改或删除时,apilevel加一表示。
native端的sdk,通常指的是androidsdk和iossdk,javascript端也有javascriptsdk。
本申请实施例的核心构思之一在于,对应用程序的sdk设定一个apilevel。当对应用程序增添小程序时,根据小程序所依赖的apilevel和sdk列表以及应用程序的apilevel和sdk列表,检测小程序的可用性。
参照图1,示出了本申请的一种小程序的可用性检查方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,确定宿主程序的apilevel和sdk列表;
在本申请实施例中,宿主程序是指配置有小程序的native应用程序(可以是android系统的应用程序,也可以是ios系统的应用程序)。
宿主程序的apilevel和sdk列表是由程序开发者预先配置的,sdk列表中包括了集成到应用程序的所有sdk。开发者可以选择集成到应用程序的sdk,并对这些sdk设定一个对应的apilevel。
可用性表示了小程序能否在特定的应用程序中符合预期的执行,得到符合预期的结果。
在本申请实施例中,判断小程序在宿主程序的可用性,可以由宿主程序的开发者在对宿主程序配置小程序时进行检验,也可以是当需要在宿主程序中运行小程序时进行检验。
步骤102,确定小程序依赖的apilevel和sdk列表;
小程序的运行环境由sdk提供。在本申请实施例中,采用了apilevel和sdk列表来表示小程序的运行环境。
在本申请实施例中,小程序可以包括:javascript小程序。javascript小程序是采用javascript脚本语言编写的小程序。
所述步骤102可以包括如下子步骤:
子步骤s11,确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
子步骤s12,根据所述javascript基础sdk确定关联的native容器sdk;
子步骤s13,根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
子步骤s14,根据所述javascript功能sdk确定依赖的native功能sdk;
子步骤s15,根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
javascript小程序依赖某些javascript基础sdk,而javascript的基础sdk会关联到特定的native容器sdk。
native容器sdk是指提供小程序的脚本运行环境的sdk,是小程序执行的基础,开发者必须集成。javascript端的基础sdk会关联到特定的容器sdk,根据native容器sdk可以进一步确定宿主程序的apilevel。
native功能sdk是指提供小程序特定能力的sdk,不同的功能sdk有不同的能力,例如蓝牙sdk可以赋予小程序进行蓝牙通信的能力,开发者可以根据自己的业务接入需要的sdk。javascript端有功能sdk会对应到native端的功能sdk。native端包括android端和ios端,native功能sdk即包括android端功能sdk和ios端功能sdk。
javascript小程序是关联的native容器sdk和依赖的native功能sdk,组成了javascript小程序所需要的nativesdk。
除了javascript小程序之外,本申请实施例中的小程序还可以包括:基于lua脚本语言编写的lua小程序。
在本申请实施例中,无论是javascript小程序还是lua小程序,其所依赖的apilevel和sdk列表都可以由小程序的开发者手动配置,也可以由相关的分析方法分析得到。
步骤103,判断所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表的是否匹配;
宿主程序可以判断小程序依赖的apilevel和sdk列表,与宿主程序的apilevel和sdk列表的是否匹配。
若小程序依赖的apilevel小于或等于宿主程序的apilevel,并且小程序依赖的sdk列表都包含在宿主程序的sdk列表中,则判断为匹配。其它情况,都判断为不匹配。
步骤104,若匹配,则确定所述小程序在所述宿主程序中可用;
步骤105,若不匹配,则确定所述小程序在所述宿主程序中不可用。
本申请实施例中,提出了一种小程序可用性的检测方法。通过对应用程序的sdk设定一个apilevel,当对应用程序增添小程序时,根据小程序所依赖的apilevel和sdk列表以及应用程序的apilevel和sdk列表,检测小程序的可用性。从而解决了满足了开发者在自身开发的应用程序中,检测小程序可用性的需求。
参照图2,示出了本申请的一种小程序的可用性检查方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤201,获取宿主程序的可用小程序列表;所述可用小程序列表中记录有预先检测为可用的小程序,所述可用的小程序所依赖的apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配;
在本申请实施例中,宿主程序的开发者可以预先生成针对宿主程序的可用小程序列表。
在本申请实施例中,所述步骤201可以包括如下子步骤:
子步骤s21,确定宿主程序的版本标识;
宿主程序确认自身的版本标识,版本标识可以是开发者设定的版本号,也可以是其他能表示应用程序唯一性的标识。
子步骤s22,将所述版本标识发送至服务器;
宿主程序可以生成一个请求,并将版本标识添加到请求,然后将请求发送给服务器。
子步骤s23,接收所述服务器返回的与宿主程序的版本标识对应的可用小程序列表。
开发者可以将宿主程序的可用小程序列表发送到服务器中进行管理。当服务器接收到宿主程序上报的版本标识时,查找对应的可用小程序列表,然后将可用小程序列表返回给宿主程序。
在本申请实施例中,可用小程序列表的生成方式可以包括如下步骤:
步骤301,配置宿主程序的apilevel和sdk列表;
开发者在开发平台开发宿主程序时,可以对宿主程序新建一个版本号,然后选择需要apilevel。开发平台会展现所有支持的apilevel,开发者可以从中选择所需的apilevel。
开发者可以根据小程序所需要实现的业务,选择需要集成的sdk。例如,开发者想要实现一个蓝牙血糖仪的实现页面,开发者需要在小程序里面使用蓝牙扫描和连接的能力,那么开发者就需要集成蓝牙sdk。
在本申请实施例中,所述步骤301可以包括如下子步骤:
子步骤s31,配置宿主程序的当前版本标识;
子步骤s32,对当前版本标识的宿主程序配置apilevel和sdk列表。
开发者在开发平台对宿主程序配置版本标识,然后对当前版本标识的宿主程序配置apilevel和sdk列表。
步骤302,确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
预置的小程序列表中可以记录有开发者具有使用权限的所有小程序,小程序可以由开发者自行开发的,也可以是购买的。
若开发者需要往可用小程序列表添加小程序,开发者可以从预置的小程序列表中选择小程序进行添加。
在选择时,开发者可以在开发平台中,确定预置的小程序列表中的各个小程序依赖的apilevel和sdk列表。
在本申请实施例中,所述小程序包括:javascript小程序;所述确定预置的小程序列表中的各个小程序依赖的apilevel和sdk列表的步骤具体可以包括:
确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;根据所述javascript基础sdk确定关联的native容器sdk;根据所述native容器sdk确定所述javascript小程序依赖的apilevel;根据所述javascript功能sdk确定依赖的native功能sdk;根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
除了javascript小程序之外,本申请实施例中的小程序还可以包括:基于lua脚本语言编写的lua小程序。
在本申请实施例中,无论是javascript小程序还是lua小程序,其所依赖的apilevel和sdk列表都可以由小程序的开发者手动配置,也可以由相关的分析方法分析得到。
步骤303,从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
开发者可以在开发平台中,确定小程序依赖的apilevel和sdk列表与述宿主程序的apilevel和sdk列表匹配的目标小程序。
若小程序依赖的apilevel与宿主程序的apilevel相同,并且小程序依赖的sdk列表都包含在宿主程序的sdk列表中,则判断为匹配。
步骤304,将所述目标小程序添加到可用小程序列表。
开发者可以在开发平台中,将依赖的apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序,添加到可用小程序列表。
在本申请实施例中,可用小程序列表的生成方式还可以包括:
步骤305,确定所述宿主程序是否具有在先配置的小程序;
在先配置的小程序是指在宿主程序的sdk改变之前,对宿主程序配置的小程序。在宿主程序的sdk改变之后,开发者需要对宿主程序设置新的apilevel并且重新确定可用小程序列表。
在先配置的小程序可以记录到宿主程序的sdk改变之前的可用小程序列表中,因此根据之前的可用小程序列表即可判断宿主程序是否具有在先配置的小程序。
步骤306,若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;
若宿主程序具有在先配置的小程序,则判断在先配置的小程序在当前的宿主程序中的可用性。
具体的,可以通过判断所述在先配置的小程序是否缺少依赖的native功能sdk,来检测在先配置的小程序的可用性。
步骤307,若不可用,则对所述在先配置的小程序进行移除处理;
如果在先配置的小程序不可用,则开发者可以在开发平台中移除该在先配置的小程序。
在实际中,开发者可以采用功能与在先配置的小程序类似的小程序进行替换,或更新在先配置的小程序,采用更新后的小程序进行替换。采用其他小程序替换在先配置的小程序时,其替换方法可以参考上述添加新的小程序的步骤。
开发者也可以考虑修改宿主程序的sdk,以重新支持该在先配置的小程序。
步骤308,若具有可用性,则将所述在先配置的小程序添加到可用小程序列表。
若在先配置的小程序仍具有可用性,则可以将该在先配置的小程序添加到当前的可用小程序列表。
步骤202,确定当前小程序是否在所述小程序可用列表中;
当在宿主程序中打开小程序时,宿主程序确定当前小程序是否在所述小程序可用列表中。
步骤203,若是,则确定所述当前小程序在所述宿主程序中可用;
若当前小程序在小程序可用列表中,则确定当前小程序在宿主程序中可用,宿主程序直接启动该小程序。
步骤204,若否,则确定所述当前小程序在所述宿主程序中不可用。
若当前小程序部在小程序可用列表中,则确定当前小程序在宿主程序中不可用,宿主程序可以生成提醒信息告知用户小程序不可用。
参照图3,示出了本申请的一种可用小程序列表生成方法实施例的步骤流程图,具体可以包括如下步骤:
步骤401,配置宿主程序的apilevel和sdk列表;
在本申请实施例中,所述步骤401可以包括:配置宿主程序的当前版本标识;对当前版本标识的宿主程序配置apilevel和sdk列表。
步骤402,确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
在本申请实施例中,所述小程序包括:javascript小程序;所述步骤402可以包括:
确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;根据所述javascript基础sdk确定关联的native容器sdk;根据所述native容器sdk确定所述javascript小程序依赖的apilevel;根据所述javascript功能sdk确定依赖的native功能sdk;根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
除了javascript小程序之外,本申请实施例中的小程序还可以包括:基于lua脚本语言编写的lua小程序。
在本申请实施例中,无论是javascript小程序还是lua小程序,其所依赖的apilevel和sdk列表都可以由小程序的开发者手动配置,也可以由相关的分析方法分析得到。
步骤403,从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
步骤404,将所述目标小程序添加到可用小程序列表。
在本申请实施例中,所述的方法还可以包括:
确定所述宿主程序是否具有在先配置的小程序;若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;若不可用,则对所述在先配置的小程序进行移除处理;若可用,则将所述在先配置的小程序添加到可用小程序列表。
在本申请实施例中,所述判断所述在先配置的小程序的可用性的步骤可以包括:判断所述在先配置的小程序是否缺少依赖的native功能sdk。
为了使本领域技术人员能够更好地理解本申请实施例,下面通过一个例子对本申请实施例加以说明:
参照图4所示为本申请实施例中一种可用小程序列表生成方法的流程图。
开发者进入开发平台,在开发平台中对自己的应用程序新建一个版本号。
开发平台会展现所有支持的apilevel,开发者可以从中选择所需的apilevel。
开发者可以根据小程序所需要实现的业务,选择需要集合的sdk。
开发者可以根据配置记录,判断应用程序是否具有在先配置的小程序。若具有在先配置的小程序,则判断在先配置的小程序的可用性。具体可以为:判断在先配置的小程序是否缺少依赖的native功能sdk;若缺少,则判断该在先配置的小程序不可用,若不缺少,则该在先配置的小程序可用。
对于不可用的在先配置的小程序,开发者可以移除或替换该不可用的在先配置的小程序。例如,开发者可以采用功能与在先配置的小程序类似的小程序进行替换,或更新在先配置的小程序,采用更新后的小程序进行替换。
对于可用的在先配置的小程序,开发者可以将其添加到新的可用小程序列表中。
如果需要新增小程序,开发者可以从预置的小程序列表中过滤出与应用程序当前的apilevel和sdk列表匹配的小程序。将过滤得到的小程序添加到可用小程序列表。
预置的小程序列表中记录的是开发者具有使用权限的小程序,例如,开发者自己开发的小程序,或购买的小程序。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请的一种小程序的可用性检查装置实施例1的结构框图,具体可以包括如下模块:
宿主程序信息确定模块501,用于确定宿主程序的apilevel和sdk列表;
小程序信息确定模块502,用于确定小程序依赖的apilevel和sdk列表;
判断模块503,用于判断所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表的是否匹配;
第一可用性确定模块504,用于若所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表的匹配,则确定所述小程序在所述宿主程序中可用;
第二可用性确定模块505,用于若所述小程序依赖的apilevel和sdk列表,与所述宿主程序的apilevel和sdk列表不匹配,则确定所述小程序在所述宿主程序中不可用。
在本申请实施例中,所述小程序包括:javascript小程序;所述小程序信息确定模块502可以包括:
第一套件确定子模块,用于确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
第二套件确定子模块,用于根据所述javascript基础sdk确定关联的native容器sdk;
等级确定子模块,用于根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
第三套件确定子模块,用于根据所述javascript功能sdk确定依赖的native功能sdk;
第四套件确定子模块,用于根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
参照图6,示出了本申请的一种小程序的可用性检查装置实施例2的结构框图,具体可以包括如下模块:
可用列表获取模块601,用于获取宿主程序的可用小程序列表;所述可用小程序列表中记录有预先检测为可用的小程序,所述可用的小程序所依赖的apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配;
小程序确定模块602,用于确定当前小程序是否在所述小程序可用列表中;
第一可用性确定模块603,用于若所述当前小程序在所述小程序可用列表中,则确定所述当前小程序在所述宿主程序中可用;
第二可用性确定模块604,用于若所述当前小程序不在所述小程序可用列表中,则确定所述当前小程序在所述宿主程序中不可用。
在本申请实施例中,所述可用列表获取模块601可以包括:
版本标识确定子模块,用于确定宿主程序的版本标识;
版本标识发送子模块,用于将所述版本标识发送至服务器;
可用列表接收子模块,用于接收所述服务器返回的与宿主程序的版本标识对应的可用小程序列表。
在本申请实施例中,所述可用小程序列表可以通过如下模块生成:
宿主程序信息配置模块,用于配置宿主程序的apilevel和sdk列表;
小程序信息确定模块,用于确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
目标小程序确定模块,用于从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
第一目标小程序添加模块,用于将所述目标小程序添加到可用小程序列表。
在本申请实施例中,所述可用小程序列表的生成模块还可以包括:
在先小程序确定模块,用于确定所述宿主程序是否具有在先配置的小程序;
第三可用性确定模块,用于若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;
移除模块,用于若所述在先配置的小程序不可用,则对所述在先配置的小程序进行移除处理;
第二目标小程序添加模块,用于若所述在先配置的小程序可用,则将所述在先配置的小程序添加到可用小程序列表。
在本申请实施例中,所述宿主程序信息配置模块包括:
版本标识配置子模块,用于配置宿主程序的当前版本标识;
宿主程序信息配置子模块,用于对当前版本标识的宿主程序配置apilevel和sdk列表。
在本申请实施例中,所述小程序包括:javascript小程序;所述小程序信息确定模块包括:
第一套件确定子模块,用于确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
第二套件确定子模块,用于根据所述javascript基础sdk确定关联的native容器sdk;
等级确定子模块,用于根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
第三套件确定子模块,用于根据所述javascript功能sdk确定依赖的native功能sdk;
第四套件确定子模块,用于根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
在本申请实施例中,所述第三可用性确定模块包括:
套件判断子模块,用于判断所述在先配置的小程序是否缺少依赖的native功能sdk。
参照图7,示出了本申请的一种可用小程序列表生成装置实施例的结构框图,具体可以包括如下模块:
宿主程序信息配置模块701,用于配置宿主程序的apilevel和sdk列表;
小程序信息确定模块702,用于确定预置的小程序列表中,各个小程序依赖的apilevel和sdk列表;
目标小程序确定模块703,用于从所述预置的小程序列表中,确定apilevel和sdk列表与所述宿主程序的apilevel和sdk列表匹配的目标小程序;
第一目标小程序添加模块704,用于将所述目标小程序添加到可用小程序列表。
在本申请实施例中,所述的装置还可以包括:
在先小程序确定模块,用于确定所述宿主程序是否具有在先配置的小程序;
可用性判断模块,用于若所述宿主程序具有在先配置的小程序,则判断所述在先配置的小程序的可用性;
移除模块,用于若所述在先配置的小程序不可用,则对所述在先配置的小程序进行移除处理;
第二目标小程序添加模块,用于若所述在先配置的小程序可用,则将所述在先配置的小程序添加到可用小程序列表。
在本申请实施例中,所述宿主程序信息配置模块701可以包括:
版本标识配置子模块,用于配置宿主程序的当前版本标识;
宿主程序信息配置子模块,用于对当前版本标识的宿主程序配置apilevel和sdk列表。
在本申请实施例中,述小程序包括:javascript小程序;所述小程序信息确定模块702可以包括:
第一套件确定子模块,用于确定所述javascript小程序依赖的javascript基础sdk和javascript功能sdk;
第二套件确定子模块,用于根据所述javascript基础sdk确定关联的native容器sdk;
等级确定子模块,用于根据所述native容器sdk确定所述javascript小程序依赖的apilevel;
第三套件确定子模块,用于根据所述javascript功能sdk确定依赖的native功能sdk;
第四套件确定子模块,用于根据所述关联的native容器sdk和所述依赖的native功能sdk,确定所述javascript小程序依赖的sdk列表。
在本申请实施例中,所述可用性判断模块包括:
套件判断子模块,用于判断所述在先配置的小程序是否缺少依赖的native功能sdk。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行本申请实施例所述的方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行本申请实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种小程序的可用性检查方法、一种小程序的可用性检查装置、一种可用小程序列表生成方法和一种可用小程序列表生成装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。