Код: Выделить всё
this.runOnUiThread(new Runnable() {
@Override
public void run() {
webView.evaluateJavascript(command, new ValueCallback() {
@Override
public void onReceiveValue(String value) {
//Parsing and taking action here
Log.d("Response", value);
}
});
}
});
Код: Выделить всё
document.getElementById("message").value="Stuff worked!";
Код: Выделить всё
document.getElementById("some-awesome-button").click();
Отсутствие реакции превратило последовательность событий в кошмар, и я понятия не имею, почему это происходит.
Еще немного данных, чтобы избежать дополнительных вопросов:
- Минимальный SDK для этого проекта — 21, а я нацелен на 28.
- Я не использую какие-либо javascriptInterface на данный момент и не собираюсь для этого проекта по нескольким причинам, связанным с бизнесом.
- Когда я получаю ответ от веб-просмотра в методе onReceiveValue(), обычно это значение, которое я только что установил, или «нулевое», если это было событие щелчка. В любом случае, проблема не в том, что я иногда получаю нули или другие значения, а в явном отсутствии ответа иногда.
- Как показано в примере кода, я определенно запускаю это в потоке пользовательского интерфейса согласно документации.
- Я попросил разработчика сервера добавить некоторый код в журнал консоли всякий раз, когда я нажимаю кнопку, и когда я возвращаю успешное значение в методе onReceiveValue(), консоль регистрирует работают и отвечают, но когда я нахожусь в ситуации, когда не получаю ответа, журналы веб-консоли никогда не срабатывают и никогда не обнаруживают взаимодействие с кнопкой.
- У меня тоже есть попробовал добавить таймер с логикой, которая прослушивает ответ от веб-просмотра и, если он его не получает, пытается повторить тот же вызов до 10 раз. Если первый вызов не удался, ни одна из последующих попыток не сработает.
- Это настройки моего веб-просмотра:
Код: Выделить всё
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAllowFileAccess(true);
Сводный вопрос, который у меня есть: что может привести к тому, что вызов AssessmentJavascript() Android WebView не вызовет обратный вызов и не вернет значение в onReceiveValue()?
Подробнее здесь: https://stackoverflow.com/questions/575 ... a-response