Как получить ответ от WebView в Android - PullRequest
0 голосов
/ 09 мая 2019

Я загружаю URL-адрес в WebView, и после регистрации он возвращает мне ответ. Я хочу получить этот ответ и использовать это значение.

Код для WebView

      final WebView wb = (WebView) findViewById(R.id.wb1);

    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" +
                    "(document.getElementsByTagName('html')[0].innerHTML);");
        }
    };

    wb.getSettings().setJavaScriptEnabled(true);
    wb.getSettings().setSupportZoom(true);
    wb.getSettings().setBuiltInZoomControls(true);
    wb.setWebViewClient(yourWebClient);
    wb.loadUrl(url);
    wb.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

}


class MyJavaScriptInterface {

    private Context ctx;

    MyJavaScriptInterface(Context ctx) {
        this.ctx = ctx;
    }

    @JavascriptInterface
    public void showHTML(String html) {
        Log.e("TAG", "showHTML: " + html);

        Document document = Jsoup.parse(html);
        Elements elements = document.select("pre");
        for (Element element : elements) {

            //Save As you want to
            Log.d("TAG", " myHTMLResponseCallback : " + element.attr("connected_id"));

        }
        System.out.println(html);
    }

}

Я получаю ответ от сервера:

   {"status":"success","connected_id":"eyuryriufgrg"}

И когда я получил его в виде HTML, я получил:

<code>    <head></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">{"status":"success","connected_id":"eyuryriufgrg"}

Как я могу получить значение «connected_id».

...