短链使用

创建插件后,后台自动生成一个短链接,通过这个链接可以直接下载到apk,而不用创建容器等,适用于简单安装插件。下面介绍使用方法。

*使用短链安装的插件,必须在插件的plugin.xml中配置Short-Links=“短链”

1 短链拷贝

在插件详情中,我们自动为您生成短链,可以直接拷贝用于安装插件

2 查询本地是否安装了短链插件

*使用短链安装的插件,必须在插件的plugin.xml中配置Short-Links=“短链”,否则查询不到

    PlugManager manager = PlugManager.getInstance();
    Bundle bundle = manager.checkLocalShortLinkPlug("http://xxxx");
    if(bundle != null){
        System.out.println("找到了插件");
    }else{
        System.out.println("插件没找到");
    }

3 从短链安装插件

此接口会先查找本地是否已经安装了这个短链指向的插件,如果已经安装则不管有没有更新版的插件都不会再次下载安装。如果没有安装,则下载安装。

*跟上面同样的理由,使用短链安装的插件,必须在插件的plugin.xml中配置Short-Links=“短链”,否则查询不到,查询不到会重复下载

接口流程:

PlugManager.getInstance().installPlugFromShortLink("http://yyfr.net/q0Y", new OnInstallSLPlugListener() {
        @Override
        public void onDownloadProgress(String s, String s1, long l, long l1) {
            System.out.println("正在下载 百分比:"+l/l1);
        }

        @Override
        public void onInstallSuccess(org.osgi.framework.Bundle bundle) {
            System.out.println("安装成功了");
        }

        @Override
        public void onInstallFailuer(int i, String s) {
            System.out.println("安装失败了");
        }

        @Override
        public void onDownloadFailure(String s) {
            System.out.println("下载失败了");
        }
    });

4 从短链更新插件

此接口会先检查本地是否已经安装此短链指向的插件,如果没安装则直接下载当前最新版安装。如果安装了,则先检测已安装插件的版本,如果不是最新的则下载最新的覆盖安装。如果检测本地已经是最新版本则不做处理。

*注意在短链插件开发时在plugin.xml中配置Short-Links=“短链”,否则即使已经安装也找不到这个插件

接口流程:

PlugManager.getInstance().updatePlugByShortLink("http://yyfr.net/q0Y", new OnUpdateSLListener() {
        @Override
        public void onDownloadProgress(String s, String s1, long l, long l1) {
             System.out.println("正在下载 百分比:"+l/l1);
        }

        @Override
        public void onUpdataSuccess(org.osgi.framework.Bundle bundle) {
            System.out.println("更新成功了");
        }

        @Override
        public void onUpdataFailuer(int i, String s) {
            System.out.println("更新失败了");
        }

        @Override
        public void onDownloadFailure(String s) {
            System.out.println("下载失败了");
        }
    });

5、通过短链直接获取RPC

此接口按照第一个参数有两种情况,如果为true,这表示每次会先执行更新插件的操作,有新版插件会先下载安装最新版插件,然后从插件获取rpc接口;如果第一个参数为false,则会检查是否已经安装插件,如果已经安装则直接获取rpc接口,如果没有安装则先执行安装操作,再获取rpc接口。

PlugManager.getInstance().getRPCInstanceByShortLink(ifUpdate,“shortLink”, “rpcUri”, rpcInterfaceClass, new OnGetRPCInstanceListener<T>() {
        @Override
        public void onDownloadProgress(String s, String s1, long l, long l1) {

            float percent = (float)l/(float) l1;
            Log.e("progress","percent:"+percent)            }

        @Override
        public void onInstallSuccess(org.osgi.framework.Bundle bundle) {
            Log.e("install sucess",bundle.getName());
        }

        @Override
        public void onGetRPCSuccess(T t) {
                           Log.e("get rpc success",t.toString());
        }

        @Override
        public void onFail(String s, String s1) {
            Log.e("fail",s+" "+s1);
                        }
    });

接口说明

public void getRPCInstanceByShortLink(boolean alwaysUserLas,String shortLink, String uri, Class rpcInterface, OnGetRPCInstanceListener listener))

此方法可以直接从一个短链和一个rpc的uri获取这个rpc接口

参数说明:

boolean alwaysUserLast:是否总是用最新版插件,即是否每次有新版插件立即更新

String shortLink:插件短链

String uri:指向rpc的uri

Class<T> rpcInterface:rpc接口的类型

OnGetRPCInstanceListener<T> listener:接口过程监听