Как получить ответ json изнутри страницы из Webview (я получаю ответ с помощью пользовательского агента)? - PullRequest
0 голосов
/ 28 мая 2020

Json я хочу получить здесь, я хочу сохранить это 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

1 Ответ

0 голосов
/ 28 мая 2020
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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...