parent
7546fdfd53
commit
7ca00b9626
|
|
@ -111,29 +111,22 @@ object UniAppUtils {
|
|||
*/
|
||||
private fun checkUpdate(uniVersion: UniVersionEntity, currentVersion: String): Boolean {
|
||||
val version = uniVersion.version
|
||||
if(version.isEmpty()){
|
||||
return false
|
||||
}
|
||||
if(version.isEmpty())return false
|
||||
|
||||
val newVersions = version.split(".")
|
||||
val originVersions = currentVersion.split(".")
|
||||
|
||||
if(newVersions.size != 3){
|
||||
return false
|
||||
}
|
||||
if(originVersions.size != 3){
|
||||
return false
|
||||
}
|
||||
try {
|
||||
for (i in 0..2) {
|
||||
if (Integer.parseInt(newVersions[i]) > Integer.parseInt(originVersions[i])) {
|
||||
return true
|
||||
} else if (Integer.parseInt(newVersions[i]) < Integer.parseInt(originVersions[i])) {
|
||||
return false
|
||||
}
|
||||
if(newVersions.size != 3 || originVersions.size != 3)return false
|
||||
|
||||
for (i in 0..2) {
|
||||
val newVal = newVersions[i].toIntOrNull() ?: 0
|
||||
val oldVal = originVersions[i].toIntOrNull() ?: 0
|
||||
|
||||
if (newVal > oldVal) {
|
||||
return true
|
||||
} else if (newVal < oldVal) {
|
||||
return false
|
||||
}
|
||||
}catch (e: Exception){
|
||||
e.printStackTrace()
|
||||
Log.w(TAG, "checkUpdate: 解析版本号时,版本号格式错误 $version")
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
@ -407,27 +400,22 @@ object UniAppUtils {
|
|||
api.sendReq(req)
|
||||
}
|
||||
|
||||
suspend fun isFileDownloadable(url: String): Boolean = withContext(Dispatchers.IO) {val client = OkHttpClient()
|
||||
private val okHttpClient: OkHttpClient by lazy {
|
||||
OkHttpClient.Builder()
|
||||
// 如果需要,可以在这里配置超时、缓存等
|
||||
// .connectTimeout(15, TimeUnit.SECONDS)
|
||||
.build()
|
||||
}
|
||||
suspend fun isFileDownloadable(url: String): Boolean = withContext(Dispatchers.IO) {
|
||||
val request = Request.Builder().url(url).build()
|
||||
try {
|
||||
client.newCall(request).execute().use { response ->
|
||||
val body = response.body ?: return@withContext false
|
||||
okHttpClient.newCall(request).execute().use { response ->
|
||||
val body = response.body
|
||||
val fileSize = body.contentLength()
|
||||
|
||||
// 下载文件小于1KB,需要判断Url是否可靠
|
||||
if (fileSize < 1024) {
|
||||
if (!response.isSuccessful) {
|
||||
val errorBody = body.string() // string() 会内部读取并关闭 body,但外层有 .use 更保险
|
||||
if (response.header("Content-Type")?.contains("application/json") == true) {
|
||||
Log.i(TAG, "下载失败...$errorBody")
|
||||
} else {
|
||||
Log.i(TAG, "服务器错误...$errorBody")
|
||||
}
|
||||
return@withContext false
|
||||
} else {
|
||||
Log.i(TAG, "文件正常,可以下载!")
|
||||
return@withContext true
|
||||
}
|
||||
return@withContext response.isSuccessful
|
||||
} else {
|
||||
return@withContext true
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue