fix(webview): 子资源连接关闭不再误报整页失败
- ERR_CONNECTION_CLOSED 若来自图片/脚本/统计等子资源,忽略并继续等待主页面 - 页面进度继续推进时自动清除瞬时错误提示
This commit is contained in:
parent
b62dc90c40
commit
56969cb879
@ -16,8 +16,8 @@ android {
|
||||
applicationId = "com.rainy.token"
|
||||
minSdk = 31
|
||||
targetSdk = 35
|
||||
versionCode = 32
|
||||
versionName = "1.7.12"
|
||||
versionCode = 33
|
||||
versionName = "1.7.13"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
||||
@ -219,15 +219,26 @@ fun WebViewLoginScreen(
|
||||
request: android.webkit.WebResourceRequest?,
|
||||
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
|
||||
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)
|
||||
}
|
||||
}
|
||||
webChromeClient = object : WebChromeClient() {
|
||||
override fun onProgressChanged(view: WebView?, newProgress: Int) {
|
||||
pageLoading = newProgress < 100
|
||||
// 页面仍在加载(子资源逐渐完成)时,自动清掉之前的瞬时网络错误提示
|
||||
if (newProgress > 0 && pageError != null && newProgress < 100) {
|
||||
pageError = null
|
||||
}
|
||||
super.onProgressChanged(view, newProgress)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user