使用KongzueUpdateSDK配合KongzueUpdateUI完成优雅的更新提醒

首先上效果:

效果

KongzueUpdateSDK 是用于实现更新流程的,默认支持使用系统对话框的更新提醒/过程/安装全套逻辑流程,也支持是用自定义更新 UI 实现可视化流程。

KongzueUpdateUI 则是配套的“非打扰式”的更新提示、更新过程以及下载完成三步界面框架,可实现不干扰用户正常界面使用,同时实现提醒的更新版本、显示更新过程等界面效果。

配合使用前需要先请求更新检查接口获取更新,如果没有自己的接口可参考之前的文章:使用KongzueUpdateSDK配合Fir.im完成应用内更新

接下来引入两个框架:

https://github.com/kongzue/KongzueUpdateSDK
https://github.com/kongzue/UpdateUI

//更新框架
implementation 'com.kongzue.kongzueupdatesdk:kongzueupdatesdk:3.0.0'
//UpdateUI
implementation 'com.kongzue.updateui:updateui:1.0.4'

在已经获得更新信息(版本、地址、更新日志)的情况下,就可以实现更新提醒:

private static UpdateUtil updateUtil
private static UpdateInfo updateInfo
private static UpdateUI updateUI;

/**
 * 显示更新提醒
 * 
 * @param me            上下文
 */
public static void showUpdateTip(Context me) {
    String updateLog = {更新日志};
    if (isNull(updateLog)) updateLog = me.getString(R.string.update_default_info);
    updateInfo = new UpdateInfo()
            .setInfo(updateLog)
            .setVer({更新版本})
            .setDownloadUrl({下载地址});
    
    updateUI = new UpdateUI();
    UpdateUI.beforeUpdateTitle = me.getString(R.string.update_default_title);       //有新版本可用提示文案
    UpdateUI.afterUpdateTitle = me.getString(R.string.update_ready_default_title);  //安装包已就绪提示文案
    UpdateUI.buttonUpdateDetails = me.getString(R.string.view_details);             //查看详细日志按钮文案
    UpdateUI.buttonUpdateNow = me.getString(R.string.update_now);                   //开始更新按钮文案
    UpdateUI.txtUpdateLogs = updateLog;
    UpdateUI.buttonInstallNow = me.getString(R.string.install_now);                 //立即安装按钮文案
    UpdateUI.darkMode = true;                                                       //是否使用暗色模式
    
    updateUI.setOnUpdateUIEventListener(new OnUpdateUIEventListener() {
        @Override
        public void onShow(int status) {
        
        }
        
        @Override
        public void onStartDownload() {
            updateUtil = new UpdateUtil(me, BuildConfig.APPLICATION_ID).setOnDownloadListener(new UpdateUtil.OnDownloadListener() {
                @Override
                public void onStart(long downloadId) {
                    updateUI.setProgress(0);
                }
    
                @Override
                public void onDownloading(long downloadId, int progress) {
                    if (updateUI != null) updateUI.setProgress(progress);
                }
    
                @Override
                public void onSuccess(long downloadId) {
                    me.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            if (updateUI != null) updateUI.readyInstall();
                        }
                    });
                }
    
                @Override
                public void onCancel(long downloadId) {
        
                }
            });
            updateUtil.doUpdate(updateInfo);
        }
        
        @Override
        public void onIgnore(int status) {
        
        }
        
        @Override
        public void onInstallNow() {
            updateUtil.installApk(me);
        }
    });
    updateUI.showUpdateUI(me);
}

备注:UpdateUI 是有默认文案的,你也可以通过上边的方法实现自定义,不设置即使用默认文案。

完事。

你可能感兴趣的:(使用KongzueUpdateSDK配合KongzueUpdateUI完成优雅的更新提醒)