Andriod app强制更新
Andriod app强制更新根据服务器判断是否需要升级使用根据服务器判断是否需要升级使用build.gradel(:project)// 使用okhttpimplementation 'com.squareup.okhttp3:okhttp:3.11.0'使用 (MainActivity.java// 使用的包import com.alibaba.fastjson.JSON;import com
·
Andriod app强制更新
根据服务器判断是否需要升级
使用
-
build.gradel(:project)
// 使用okhttp implementation 'com.squareup.okhttp3:okhttp:3.11.0'
-
使用 (MainActivity.java
// 使用的包 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; // 定义版本号 private static String baseVersion = "V1.1"; // 获取服务端的版本号是否和本地版本号一致 private void sendByOKHttp() { new Thread(new Runnable() { @Override public void run() { OkHttpClient okhttpclient = new OkHttpClient(); Request request = new Request.Builder() .url("https://******/version/") .get() .build(); Log.d("URL",request+""); try{ Response response = okhttpclient.newCall(request).execute(); String responseData = response.body().string(); Log.d("输出结果:",responseData); // 转换字典 这里使用ali fastjson // 使用 //1. compile 'com.alibaba:fastjson:1.2.54' // import com.alibaba.fastjson.JSON; // import com.alibaba.fastjson.JSONObject; JSONObject jsonObject = JSONObject.parseObject(responseData); String version = jsonObject.getString("version"); if (baseVersion.equals(version)){ Log.d("输出结果","版本相同"); } else{ updateApp(); } }catch (Exception e){ Log.d("输出结果:","get错误"); } } }).start(); } // 打开 UpdateActivity.java public void updateApp(){ Intent intent = new Intent(MainActivity.this,UpdateActivity.class); startActivity(intent); }
-
导入sdk
// 工程build.gradle目录添加 allprojects { repositories { ... maven { url 'https://www.jitpack.io' } } } //项目build.gradle文件添加 dependencies { implementation 'com.github.NewHuLe:AppUpdate:v1.7' }
-
UpdateActivity.java
package com.tf.main; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import com.alibaba.fastjson.JSONObject; import com.open.hule.library.entity.AppUpdate; import com.open.hule.library.utils.UpdateManager; public class UpdateActivity extends AppCompatActivity { private static String url = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getUrl(); } // 获取服务端的url private void getUrl() { new Thread(new Runnable() { @Override public void run() { OkHttpClient okhttpclient = new OkHttpClient(); Request request = new Request.Builder() .url("https://******/version/") .get() .build(); try{ Response response = okhttpclient.newCall(request).execute(); String responseData = response.body().string(); // 转换字典 JSONObject jsonObject = JSONObject.parseObject(responseData); url = jsonObject.getString("download_url"); checkUpdate(); }catch (Exception e){ Log.d("输出结果:","get错误"); } } }).start(); } private void checkUpdate() { // 更新的数据参数 Log.d("下载url:",url); AppUpdate appUpdate = new AppUpdate.Builder() //更新地址(必传) .newVersionUrl(url) // 通过传入资源id来自定义更新对话框,注意取消更新的id要定义为btnUpdateLater,立即更新的id要定义为btnUpdateNow(非必填) .updateResourceId(R.layout.dialog_update) // 更新的标题,弹框的标题(非必填,默认为应用更新) .updateTitle(R.string.update_title) // 更新内容的提示语,内容的标题(非必填,默认为更新内容) .updateContentTitle(R.string.update_content_lb) // 保存文件路径(默认前缀:Android/data/包名/files/ 文件名:download) .savePath("/A/B") //是否采取静默下载模式(非必填,只显示更新提示,后台下载完自动弹出安装界面),否则,显示下载进度,显示下载失败 .isSilentMode(false) //是否强制更新(非必填,默认不采取强制更新,否则,不更新无法使用) .forceUpdate(1) //文件的MD5值,默认不传,如果不传,不会去验证md5(非静默下载模式生效,若有值,且验证不一致,会启动浏览器去下载) .md5("") .build(); new UpdateManager().startUpdate(UpdateActivity.this, appUpdate); } }
-
服务器返回
# 获取版本号 客户端根据版本号来判断是否强制更新 class Version(BaseView): def get(self,request): result = { 'appnmae':'', # app名称 'version': settings.EDITION, # 版本号 'download_url' : '', # 更新地址 'description' : '', # 版本描述 'must':True, # 是否强制升级 'extra':[] # 额外信息 } return Response(result)
更多推荐
已为社区贡献1条内容
所有评论(0)