【问题标题】:How to get json response from inside the page from Webview(I get a response with user-agent)?如何从 Webview 的页面内部获取 json 响应(我得到用户代理的响应)?
【发布时间】:2024-06-14 18:05:01
【问题描述】:

Json i want to get is here, I want to keep this json

private void logData(WebView view, final String url) {
    view.evaluateJavascript("document.documentElement.outerHTML.toString()", new ValueCallback<String>() {
        @Override
        public void onReceiveValue(String value) {


            Ion.with(context).load(url).asString().setCallback(new FutureCallback<String>() {
                @Override
                public void onCompleted(Exception e, String result) {

                    if (result != null && result.length() > 0) {

                        int maxLogSize = 1000;
                        for (int i = 0; i <= result.length() / maxLogSize; i++) {
                            int start = i * maxLogSize;
                            int end = (i + 1) * maxLogSize;
                            end = Math.min(end, result.length());
                            Log.v("LoggedHTML", result.substring(start, end));
                        }

                    }
                }
            });


        }
    })
}

这段代码给了我页面的html文档,我想打印json

【问题讨论】:

  • 终于找到了解决方案,我改了这个,view.evaluateJavascript("document.documentElement.outerHTML.toString()" 用这个;view.loadUrl("javascript:HtmlViewer.showHTML" + "( document.body.innerText);");

标签: java android android-webview instagram-api user-agent


【解决方案1】:
WebViewClient yourWebClient = new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        wb.loadUrl("javascript:HtmlViewer.showHTML" +
                "('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
    }
};
wb = (WebView) findViewById(R.id.webview);
wb.getSettings().setJavaScriptEnabled(true);
wb.getSettings().setSupportZoom(true);
wb.getSettings().setBuiltInZoomControls(true);
wb.setWebViewClient(yourWebClient);
wb.loadUrl("http://pqrs.abcde.com/facebook");
wb.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

【讨论】:

  • 我已经添加了这个,这是给我的html文档
最近更新 更多