插件管理流程

插件和宿主的关系主要有两种,1、容器绑定 2、短链下载 。下面分别围绕这两种关系介绍其相关的管理流程。

一 容器绑定

容器绑定是宿主和插件产生联系的一种方式,优势是可以通过容器的概念管理一组插件,还可以动态增减修改这些插件,这种联系主要在后台生成。

容器绑定操作的几个重要步骤:

1、新建应用

2、创建插件

3、在应用内创建容器(一个应用可以创建多个容器)

4、在容器内绑定插件(一个容器可以绑定多个插件)

5、在前端应用的manifest设置apkplug_appid(创建应用后在应用详情内可以获得),设置apkplug_containerid(容器ID)

通过这几步宿主就和插件绑定了关系,在前端宿主应用的manifest文件中配置apkplug_appid就将前端应用和后台创建的这个应用建立了联系,再配置apkplug_containerid来指定这个前端宿主使用哪个容器,这样前端和后台就有了一个完整映射,前端应用也就和后台的插件有了联系。

整体关系图如下:

1.1 获取插件信息

PlugManager.getInstance().getPlugInfo:通过这个接口可以获取所配置容器内的插件的信息,包括插件详情中描述的信息、插件版本、插件plugid等,具体调用和参数说明参考这里

1.2 安装插件

安装插件可以分为以下几步:

1、查询插件信息(见1.1说明)获取PlugInfo列表

2、调用PlugManager.getInstance().installPlug接口,根据PlugInfo下载并安装对应的插件(详见插件安装

1.3 插件更新

1.3.1 只查询更新信息

如果只想查询本地是否有插件可以更新可以使用PlugManager.getInstance().checkAllLocalPlugVersion接口,这个接口会先获取所有本地已安装插件的版本,然后上传服务器查询是否有更新版本,如果有则返回这些信息(详情参见这里)。

1.3.2 更新某个插件

更新某个插件使用PlugManager.getInstance().updataPlug接口,这个接口可以传入一个Bundle对象,然后接口内部就会根据这个Bundle信息查询是否有可更新插件,如果有则下载新版并安装,如果没有则不下载。

具体使用时可以两步完成

1、获取本地安装的插件(Bundle对象)

2、调用PlugManager.getInstance().updataPlug接口

二、短链下载

短链下载方式是宿主和插件的另一种联系方式,创建插件后可以为插件生成一个短链,通过这个短链可以直接下载到这个插件,优势是使用简单直接。下面介绍通过这种方式的插件管理流程。

使用短链的几步:

1、创建插件

2、生成短链

3、在前端插件的plugin.xml中增加Short-Links=“短链”配置

4、插件上传

1.1 通过短链安装插件

通过短链可以直接下载并安装一个插件,接口为PlugManager.getInstance().installPlugFromShortLink,一步调用即可。此接口会先查找本地是否已经安装了这个短链指向的插件,如果已经安装则不会再次下载安装。如果没有安装,则下载安装。

1.2 通过短链更新插件

通过短链可以一步更新某个通过短链安装的插件,调用接口为PlugManager.getInstance().updatePlugByShortLink。此接口会先检查本地是否已经安装此短链指向的插件,如果没安装则直接下载当前最新版安装。如果安装了,则先检测已安装插件的版本,如果不是最新的则下载最新的覆盖安装。如果检测本地已经是最新版本则不做处理。