feat(webview): 添加 onProgressChanged 回调,支持页面加载进度监听

这个提交包含在:
XuqmGroup 2026-06-18 14:05:43 +08:00
父节点 30ce89afcc
当前提交 0ec173677d
共有 2 个文件被更改,包括 7 次插入0 次删除

查看文件

@ -18,6 +18,8 @@ data class XWebViewConfig(
val onMessage: ((String) -> Unit)? = null,
/** 页面加载失败时回调。errorCode / description / failingUrl 对应 WebViewClient.onReceivedError 参数。 */
val onPageError: ((errorCode: Int, description: String, failingUrl: String) -> Unit)? = null,
/** 页面加载进度回调0-100。 */
val onProgressChanged: ((Int) -> Unit)? = null,
)
interface XWebViewController {

查看文件

@ -548,6 +548,11 @@ fun XWebViewView(
}
webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView?, newProgress: Int) {
super.onProgressChanged(view, newProgress)
mainHandler.post { config.onProgressChanged?.invoke(newProgress) }
}
override fun onPermissionRequest(request: PermissionRequest) {
if (PermissionRequest.RESOURCE_VIDEO_CAPTURE in request.resources) {
if (ContextCompat.checkSelfPermission(ctx, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {