Что-то, что вы могли бы сделать, это использовать пользовательский WebView и добавить новый метод, чтобы загрузить HTML-код URL-адреса самостоятельно и изменить возвращенный HMTL.Вот пример Kotlin с использованием сопрограмм:
class OverrideWebView : WebView {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
private val okHttpClient = OkHttpClient()
fun loadUrlAndReplace(url: String, replace: (String) -> String) {
val request = Request.Builder()
.url(url)
.build()
GlobalScope.launch {
okHttpClient.newCall(request).execute().body()?.string()?.let { html ->
GlobalScope.launch(Dispatchers.Main) {
val newHtml = replace(html)
loadData(newHtml, "text/html", "UTF-8");
}
} ?: kotlin.run {
Log.e("ERROR", "Error loading $url")
}
}
}
}
Использование:
val url = "https://example.com"
webView.loadUrlAndReplace(url) {html->
html.replace("Original Text","New Text")
}