Android Studio получает переменную Javascript из Javacode

Android Studio получает переменную Javascript из Javacode

Я пытаюсь получить переменную Javascript в веб-представлении, чтобы использовать ее в нативном коде Java. Я пробовал разные способы, чтобы достичь этого, но, к сожалению, всегда возникает одна и та же проблема. Я прочитал в документации по Android, что webview.loadURL () работает асинхронно. Это означает, что WebView работает в своем собственном потоке. Что происходит, так это то, что UI-поток будет работать дальше в коде Java и ничего не будет возвращен, потому что WebView-Thread все еще работает. Блокировка UI-потока не работает, поскольку поток WebView также будет заблокирован ( читайте здесь ).

Итак, я попробовал способ, которым документация показала мне, и в итоге получил следующее:

 String getJavascriptVariable(final String command) { this.webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (android.os.Build.VERSION.SDK_INT {amp}gt;= android.os.Build.VERSION_CODES.KITKAT) { webView.evaluateJavascript(command   ";", new ValueCallback{amp}lt;String{amp}gt;() { @Override public void onReceiveValue(String s){tempVar = s;} }); } } }); return tempVar; } 

tempVar является статической переменной в том же классе. Но он не вернет значение переменной Javascript в класс MainActivity. И что же мне делать?

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector