Android 4.2.1, разрывы интерфейса WebView и javascript
У меня есть веб-просмотр с добавленным интерфейсом javascript, который отлично работает на большинстве устройств, кроме тех, которые работают под управлением Android 4.2.1.
Я удалил большую часть кода и остался с очень простым кодом:
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.setWebChromeClient(new WebChromeClient());
this.webView.addJavascriptInterface(new Object() {
public void handshake() {
Log.d("JS", "handshake no params");
}
public void handshake(String json) {
Log.d("JS", "handshake with params: " + json);
}
}, "Android");
С точки зрения javascript тестовый код выглядит так:
Android.handshake();
Но я получаю это в logcat:
E / Web Console: Uncaught TypeError: Object [объект Object] не имеет метода 'рукопожатие'
Опять же, эта та же самая вещь прекрасно работает в устройствах, которые имеют более старую ОС Android (< 4.2.1), который я протестировал (минимальная версия 2.3.3).
Странно то, что если я запускаю совершенно новый проект, с одним-единственным Activity, имеющим только WebView, с тем же кодом, все прекрасно работает даже для 4.2.1, но когдаЧасть моего настоящего проекта, вещи ломаются. Там'ничего яя делаю с веб-представлением, которое не включено в этот фрагмент кода, который я предоставил.
Что самое странное для меня, это то, что javascript находит объект Android, но у него просто нет запрошенного метода (рукопожатия), как это может быть?
Любая помощь будет принята с благодарностью, так как это сводит меня с ума в течение последних 2 недель или около тогоЭто ошибка, к которой я все время возвращаюсь, потом сдаюсь и т. д.). Благодарю.