parent
7546fdfd53
commit
7ca00b9626
|
|
@ -111,29 +111,22 @@ object UniAppUtils {
|
||||||
*/
|
*/
|
||||||
private fun checkUpdate(uniVersion: UniVersionEntity, currentVersion: String): Boolean {
|
private fun checkUpdate(uniVersion: UniVersionEntity, currentVersion: String): Boolean {
|
||||||
val version = uniVersion.version
|
val version = uniVersion.version
|
||||||
if(version.isEmpty()){
|
if(version.isEmpty())return false
|
||||||
return false
|
|
||||||
}
|
|
||||||
val newVersions = version.split(".")
|
val newVersions = version.split(".")
|
||||||
val originVersions = currentVersion.split(".")
|
val originVersions = currentVersion.split(".")
|
||||||
|
|
||||||
if(newVersions.size != 3){
|
if(newVersions.size != 3 || originVersions.size != 3)return false
|
||||||
return false
|
|
||||||
}
|
for (i in 0..2) {
|
||||||
if(originVersions.size != 3){
|
val newVal = newVersions[i].toIntOrNull() ?: 0
|
||||||
return false
|
val oldVal = originVersions[i].toIntOrNull() ?: 0
|
||||||
}
|
|
||||||
try {
|
if (newVal > oldVal) {
|
||||||
for (i in 0..2) {
|
return true
|
||||||
if (Integer.parseInt(newVersions[i]) > Integer.parseInt(originVersions[i])) {
|
} else if (newVal < oldVal) {
|
||||||
return true
|
return false
|
||||||
} else if (Integer.parseInt(newVersions[i]) < Integer.parseInt(originVersions[i])) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}catch (e: Exception){
|
|
||||||
e.printStackTrace()
|
|
||||||
Log.w(TAG, "checkUpdate: 解析版本号时,版本号格式错误 $version")
|
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
@ -407,27 +400,22 @@ object UniAppUtils {
|
||||||
api.sendReq(req)
|
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()
|
val request = Request.Builder().url(url).build()
|
||||||
try {
|
try {
|
||||||
client.newCall(request).execute().use { response ->
|
okHttpClient.newCall(request).execute().use { response ->
|
||||||
val body = response.body ?: return@withContext false
|
val body = response.body
|
||||||
val fileSize = body.contentLength()
|
val fileSize = body.contentLength()
|
||||||
|
|
||||||
// 下载文件小于1KB,需要判断Url是否可靠
|
// 下载文件小于1KB,需要判断Url是否可靠
|
||||||
if (fileSize < 1024) {
|
if (fileSize < 1024) {
|
||||||
if (!response.isSuccessful) {
|
return@withContext 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
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return@withContext true
|
return@withContext true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue