kum*_*mar 7 kotlin-multiplatform
如何检查 KMM 中的互联网可用性(实际/预期)
安卓
actual class NetworkUtils actual constructor() {
actual fun isNetworkAvailable(): Boolean {
val connectivityManager =
application.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo = connectivityManager.activeNetworkInfo
return networkInfo != null && networkInfo.isConnected
}
}
Run Code Online (Sandbox Code Playgroud)
常见的
expect class NetworkUtils() {
fun isNetworkAvailable(): Boolean
}
Run Code Online (Sandbox Code Playgroud)
IOS
actual class NetworkUtils {
actual fun isNetworkAvailable(): Boolean {
//todo ?
}
Run Code Online (Sandbox Code Playgroud)
}
在IOS中
actual fun isNetworkAvailable(): Boolean {
return runBlocking { isConnected() }
}
private suspend fun isConnected(): Boolean {
return suspendCoroutine { continuation ->
val url = NSURL(string = "https://www.google.com")
val request = NSURLRequest.requestWithURL(url)
val task = NSURLSession.sharedSession.dataTaskWithRequest(
request = request,
completionHandler = { _, _, error ->
val connected = error == null
continuation.resume(connected)
}
)
task.resume()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |