本客服平台由提供产品服务

如何更新插件

Apkplug-客服支持小芳 发表于 2016年08月16日 14:29

插件更新

1 使用本地插件更新

本地插件更新使用本地插件安装函数即可,apkplug会自动检测plugin.xml下Bundle-Version版本是否有增加

2 云端插件更新

2.1 查询本地插件更新信息

查询本地插件的更新信息的接口:

public void checkAllLocalPlugVersion(Context context,final OnCheckVersionListener listener)

OnCheckVersionListener 为请求回调接口,提供两个回调方法:

void onSuccess(List<PlugInfo> infoList);

void onFailure(String responseMsg);

onSuccess中返回云端最新版本插件列表信息,onFailure中返回错误信息。

PlugInfo结构参考附录

具体调用代码:

            PlugManager.getInstance().checkAllLocalPlugVersion(context, new OnCheckVersionListener() {
                @Override
                public void onSuccess(List<PlugInfo> infoList) {
                    infoList.addAll(infoList);
                    showInfo(infoList);
                }

                @Override
                public void onFailure(String responseMsg) {
                    Log.d("onFailure", responseMsg);
                }
            });

2.2 使用云端插件更新本地插件

插件更新接口为:

public void updataPlug(Bundle bundle,final OnUpdataListener listener)

或者

PlugManager.getInstance().updataPlug(Bundle bundle, InstallProperties properties, OnUpdataListener listener)

后者可以通过InstallProperties 传入一些安装检测条件,其他相同

Bundle 代表本地安装的插件,参考附录

OnUpdataListener是更新回调接口,返回如下回调:

void onDownloadProgress(String url, String filePath, long bytesWritten, long totalBytes);
void onDownloadFailure(String errorMsg);
void onUpdataSuccess(Bundle bundle, PlugInfo plugInfo);
void onUpdataFailuer(int i,PlugInfo plugInfo,String errorMsg);

onDownloadProgress为下载进度回调,onUpdata* 为更新完成安装后回调,onDownloadFailure返回下载失败信息。

更新失败状态码参考附录

具体调用代码:

    BundleContext bundleContext = FrameworkFactory.getInstance().getFrame().getSystemBundleContext();
        org.osgi.framework.Bundle[] bundles = bundleContext.getBundles();

        for(org.osgi.framework.Bundle bundle : bundles){
            PlugManager.getInstance().updataPlug(bundle , new OnUpdataListener() {
            @Override
            public void onDownloadProgress(String url, String filePath, long bytesWritten, long totalBytes) {
                Log.d(filePath,"had downloaded "+bytesWritten+" all in "+totalBytes);
            }

            @Override
            public void onUpdataSuccess(org.osgi.framework.Bundle bundle) {
                Log.d("onInstallSuccess",bundle.getName()+" had installed");
            }

            @Override
            public void onUpdataFailuer(int i, org.osgi.framework.Bundle bundle,String errorMsg) {
                Log.d("onInstallFailuer",bundle.getName()+errorMsg);
            }

            @Override
            public void onDownloadFailure(String errorMsg) {
                Log.d("failure",errorMsg);
            }
        });
      }


回复

您需要登录后才可以回复