Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

自定义协议,点击升级没有进度条 #22

Closed
wulingf opened this issue Aug 21, 2017 · 1 comment
Closed

自定义协议,点击升级没有进度条 #22

wulingf opened this issue Aug 21, 2017 · 1 comment

Comments

@wulingf
Copy link

wulingf commented Aug 21, 2017

new UpdateAppManager.Builder()
//必须设置,当前Activity
.setActivity(activity)
//必须设置,实现httpManager接口的对象
.setHttpManager(new UpdateAppHttpUtil())
//必须设置,更新地址
.setUpdateUrl(Urls.UPDATA_APP)
//以下设置,都是可选
//设置请求方式,默认get
.setPost(false)
//添加自定义参数,默认version=1.0.0(app的versionName);apkKey=唯一表示(在AndroidManifest.xml配置)
.setParams(params)
//设置点击升级后,消失对话框,默认点击升级后,对话框显示下载进度
//.hideDialogOnDownloading(false)
//设置头部,不设置显示默认的图片,设置图片后自动识别主色调,然后为按钮,进度条设置颜色
//.setTopPic(R.mipmap.top_8)
//为按钮,进度条设置颜色,默认从顶部图片自动识别。
//.setThemeColor(ColorUtil.getRandomColor())
//设置apk下砸路径,默认是在下载到sd卡下/Download/1.0.0/test.apk
.setTargetPath(path)
//设置appKey,默认从AndroidManifest.xml获取,如果,使用自定义参数,则此项无效
//.setAppKey("ab55ce55Ac4bcP408cPb8c1Aaeac179c5f6f")
//不显示通知栏进度条
//.dismissNotificationProgress()
//是否忽略版本
//.showIgnoreVersion()
.build()
//检测是否有新版本
.checkNewApp(new UpdateCallback() {
/**
* 解析json,自定义协议
*
* @param json 服务器返回的json
* @return UpdateAppBean
*/
@OverRide
protected UpdateAppBean parseJson(String json) {
UpdateAppBean updateAppBean = new UpdateAppBean();
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray array = jsonObject.optJSONArray("list");
for (int i = 0; i < array.length(); i ++){
JSONObject obj = array.getJSONObject(i);
if (i == 0){
updateAppBean
//(必须)是否更新Yes,No
.setUpdate("Yes")
//(必须)新版本号,
.setNewVersion(obj.optString("versionNo"))
//(必须)下载地址
//.setApkFileUrl(obj.optString("updateUrl"))
.setApkFileUrl("https://raw.githubusercontent.com/WVector/AppUpdateDemo/master/apk/app-debug.apk")
//(必须)更新内容
.setUpdateLog(obj.optString("updateMemo"))
//大小,不设置不显示大小,可以不设置
//.setTargetSize(jsonObject.optString("target_size"))
//设置md5,可以不设置
//.setNewMd5(jsonObject.optString("new_md51"))
//是否强制更新,可以不设置
//.setConstraint(obj.optString("isUpdate").equals("y"));
.setConstraint(true);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return updateAppBean;
}

                /**
                 * 网络请求之前
                 */
                @Override
                public void onBefore() {
                }

                /**
                 * 网路请求之后
                 */
                @Override
                public void onAfter() {
                }

                /**
                 * 没有新版本
                 */
                @Override
                public void noNewApp() {

                }

                /**
                 *  自定义更新对话框
                 * */
                @Override
                protected void hasNewApp(UpdateAppBean updateApp, final UpdateAppManager updateAppManager) {
                    super.hasNewApp(updateApp, updateAppManager);

// String message = updateApp.getUpdateLog();
// boolean isFroce = updateApp.isConstraint();
// DialogUtil.showDiglogNoDismiss(activity, "有新本更新", message, isFroce ? "" : "取消", "升级", isFroce, new DialogUtil.CallBack() {
// @OverRide
// public void onDefault() {
// updateAppManager.download();
// }
// });
}
});

@WVector
Copy link
Owner

WVector commented Aug 24, 2017

可以看看使用样例

@WVector WVector closed this as completed Aug 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants