fix(webview): 子资源连接关闭不再误报整页失败
- ERR_CONNECTION_CLOSED 若来自图片/脚本/统计等子资源,忽略并继续等待主页面 - 页面进度继续推进时自动清除瞬时错误提示
This commit is contained in:
parent
b62dc90c40
commit
56969cb879
@ -16,8 +16,8 @@ android {
|
|||||||
applicationId = "com.rainy.token"
|
applicationId = "com.rainy.token"
|
||||||
minSdk = 31
|
minSdk = 31
|
||||||
targetSdk = 35
|
targetSdk = 35
|
||||||
versionCode = 32
|
versionCode = 33
|
||||||
versionName = "1.7.12"
|
versionName = "1.7.13"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables {
|
vectorDrawables {
|
||||||
|
|||||||
@ -219,15 +219,26 @@ fun WebViewLoginScreen(
|
|||||||
request: android.webkit.WebResourceRequest?,
|
request: android.webkit.WebResourceRequest?,
|
||||||
error: android.webkit.WebResourceError?
|
error: android.webkit.WebResourceError?
|
||||||
) {
|
) {
|
||||||
|
// 只把“主框架”加载失败当成整页失败;图片/脚本/统计等子资源
|
||||||
|
// ERR_CONNECTION_CLOSED 很常见,页面仍在加载,不能误报。
|
||||||
|
if (request?.isForMainFrame != true) {
|
||||||
|
DebugLog.i("TraeLogin", "subresourceError(ignored): ${request?.url?.toString()?.toSafeLogUrl()} ${error?.description}")
|
||||||
|
super.onReceivedError(view, request, error)
|
||||||
|
return
|
||||||
|
}
|
||||||
pageLoading = false
|
pageLoading = false
|
||||||
pageError = error?.description?.toString() ?: request?.url?.toString().orEmpty()
|
pageError = error?.description?.toString() ?: request?.url?.toString().orEmpty()
|
||||||
DebugLog.w("TraeLogin", "pageError: ${request?.url?.toString()?.toSafeLogUrl()} ${error?.description}")
|
DebugLog.w("TraeLogin", "pageError(main): ${request?.url?.toString()?.toSafeLogUrl()} ${error?.description}")
|
||||||
super.onReceivedError(view, request, error)
|
super.onReceivedError(view, request, error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
webChromeClient = object : WebChromeClient() {
|
webChromeClient = object : WebChromeClient() {
|
||||||
override fun onProgressChanged(view: WebView?, newProgress: Int) {
|
override fun onProgressChanged(view: WebView?, newProgress: Int) {
|
||||||
pageLoading = newProgress < 100
|
pageLoading = newProgress < 100
|
||||||
|
// 页面仍在加载(子资源逐渐完成)时,自动清掉之前的瞬时网络错误提示
|
||||||
|
if (newProgress > 0 && pageError != null && newProgress < 100) {
|
||||||
|
pageError = null
|
||||||
|
}
|
||||||
super.onProgressChanged(view, newProgress)
|
super.onProgressChanged(view, newProgress)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user