Android: Как проверить, возвращает ли findElementById значение NULL в Webview? - PullRequest
0 голосов
/ 09 ноября 2019

В приведенном ниже коде я обращаюсь к элементу 'search-field' через findElementById. Но я вместо установки значения хотел бы проверить, возвращает ли findElementById значение null, как в Javascript:

if(document.getElementById('search field')==null).

Как я могу сделать это здесь?

@Override
public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_second);

     WebView wb = (WebView) findViewById(R.id.webView);
     String url = "https://www.leo.org/englisch-deutsch/";
     wb.loadUrl(url);

     wb.getSettings().setJavaScriptEnabled(true);
     wb.getSettings().setDomStorageEnabled(true);

     wb.setWebViewClient(new WebViewClient() {
           public void onPageFinished(WebView view, String url) {
               String s = "tea";
               String js = "javascript:(function() {document.getElementById('search-field').value = '"+s+"';})();";
               view.loadUrl(js); 
           }
    }
} 

Ответы [ 3 ]

0 голосов
/ 09 ноября 2019

Вы должны использовать функциюvaluJavascript:

wb.setWebViewClient(new WebViewClient() {
        public void onPageFinished(WebView view, String url) {
            String js2 = "var isNull = document.getElementById('search-field') == null; isNull;";
            view.evaluateJavascript(js2, new ValueCallback<String>() {
                @Override
                public void onReceiveValue(String value) {
                    Log.d("WebViewClient", "onReceiveValue(" + value + ")");
                }
            });
        }
    });

Она вернет строковое значение ответа javascript, в данном примере «true» или «false».

0 голосов
/ 09 ноября 2019

Просто проверьте, является ли строковая переменная js нулевой или пустой:

if (js.equals(null) || js.isEmpty()) {
   // do stuff when it's null or an empty string ...
}
0 голосов
/ 09 ноября 2019

Вы можете решить эту проблему с помощью jsoup. Это может быть хорошим чтением: «Начало работы с JSOUP в Android» Дамилола Омойвола https://link.medium.com/gRCrINRNt1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...