如何使用Http Post从WebView检索和修改HTML内容

Moh*_*iri 11 html java android webview

我正在开发一个显示HTML页面某些部分的Android应用程序.第一步,我使用此代码提供的代码如何从WebView检索HTML内容.

  • 完整的HTML图片

第1部分

  • 那部分我想表现出来

    第2部分

    /* An instance of this class will be registered as a JavaScript interface */
    class MyJavaScriptInterface
    {
        @SuppressWarnings("unused")
        public void processHTML(String html)
        {
            // process the html as needed by the app
        }
    }
    
    final WebView browser = (WebView)findViewById(R.id.browser);
    /* JavaScript must be enabled if you want it to work, obviously */
    browser.getSettings().setJavaScriptEnabled(true);
    
    /* Register a new JavaScript interface called HTMLOUT */
    browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
    
    /* WebViewClient must be set BEFORE calling loadUrl! */
    browser.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url)
        {
            /* This call inject JavaScript into the page which just finished loading. */
            browser.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
        }
    });
    
    /* load a web page */
    browser.loadUrl("http://example.com/gethtml.html"); 
    
    Run Code Online (Sandbox Code Playgroud)

但是当用户点击第二张图片中的按钮时,将调用HTTP post方法,这将是结果HTML
在此输入图像描述

我的问题是如何在向用户显示之前检索和修改Post Result Html?并显示这样的事情 在此输入图像描述

lif*_*foo 1

一个简单的解决方案可能是在 web 视图中注入自定义 css 代码,更改要“单独”显示的 HTML 元素的样式。

你应该像这样注入一个CSS:

#central-box {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    // depends on the structure of the page
}
Run Code Online (Sandbox Code Playgroud)

另请参阅此答案中有关如何执行此操作的示例。