Android читать веб-HTML и отправлять данные в Java - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть HTML-форма, которую я загружаю в веб-просмотр.При подаче заявки эта форма открывает страницу с благодарностью.Который имеет следующее содержание HTML.Я не контролирую какую-либо часть кода web / html, так как он полностью сделан в стороннем сервисе, таком как landinggi

<head>
   <script>
           var conversion = { hash: '3bd15c781a094e1fd0f079327c659f95','title': "Test - New Zealand",'name': "12\/12\/2019",'text': "10",'text1': "2",'phone1': "995309934",'textarea': "Test Request" };
   </script>

Я хочу извлечь данные в этой модели JS и желательно сохранитьэто в Java-модели вида.

Class Conversion{
      public String hash;
      public String title;
      public String name;
      public String text; ...
}

Есть ли чистый способ сделать что-то подобное?

1 Ответ

0 голосов
/ 25 февраля 2019

Создан следующий метод, чтобы прочитать данные из веб-просмотра и заполнить мой объект Java.Примечание: - все оценочные вызовы являются асинхронными, поэтому необходимо понимать, как обрабатывать эту информацию.

private void fetchWebViewDataForConversion(){
    ConversionModel model = new ConversionModel();
    webview.evaluateJavascript(
            "(function() { return conversion.hash; })();", new ValueCallback<String>() {
                @Override
                public void onReceiveValue(String s) {
                    model.hash = s;
                    Log.d(Config.LOGTAG, s); // Returns the value from the function
                }
            }
    );
    webview.evaluateJavascript(
            "(function() { return conversion.title; })();", new ValueCallback<String>() {
                @Override
                public void onReceiveValue(String s) {
                    model.destination = s;
                    Log.d(Config.LOGTAG, s); // Returns the value from the function
                }
            }
    );
    webview.evaluateJavascript(
            "(function() { return conversion.name; })();", s -> {
                model.date = s;
                Log.d(Config.LOGTAG, s); // Returns the value from the function
            }
    );
    webview.evaluateJavascript(
            "(function() { return conversion.text; })();", s -> {
                model.numberOfNights = s;
                Log.d(Config.LOGTAG, s); // Returns the value from the function
            }
    );
    webview.evaluateJavascript(
            "(function() { return conversion.text1; })();", s -> {
                model.numberOFPassengers = s;
                Log.d(Config.LOGTAG, s); // Returns the value from the function
            }
    );
    webview.evaluateJavascript(
            "(function() { return conversion.phone1; })();", s -> {
                model.phoneNumber = s;
                Log.d(Config.LOGTAG, s); // Returns the value from the function
            }
    );
    webview.evaluateJavascript(
            "(function() { return conversion.textarea; })();", s -> {
                model.details = s;
                Log.d(Config.LOGTAG, s); // Returns the value from the function
            }
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...