【问题标题】:Changing webView content in Android Studio在 Android Studio 中更改 webView 内容
【发布时间】:2019-07-26 02:56:17
【问题描述】:

我想获取页面源代码,查找特定文本并将其替换为不同的文本。然后我想向用户显示更改后的页面。有没有办法在 Android Studio 中做到这一点?

【问题讨论】:

标签: java android html web


【解决方案1】:

您可以做的事情是使用自定义 WebView 并添加一个新方法来自己加载 URL 的 HTML 并修改返回的 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")
 }

【讨论】:

    【解决方案2】:

    很遗憾,你不能。

    您有两个选择,您可以获取 html 源代码 - 解析它并尝试在您的 android 应用中调整设计 + 自己添加功能。

    或者将网站显示为Webview,但它完全没有用,因为你只能查看页面的内容,无法更改文本等。

    无论哪种方式,您都必须自己完成几乎所有事情。但无论如何,拥有和想法已经是一个好的开始,祝你好运!

    【讨论】:

      猜你喜欢
      • 2021-03-31
      • 2017-05-14
      • 1970-01-01
      • 2012-03-19
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多