Невозможно зарегистрировать события

Это главный экран приложения для Android. Все сделано внутри WebView.

Когда я нажимаю кнопку в нижнем левом углу, это оверлей открывается, его содержимое динамически добавляется к нему.

Когда я нажимаю один из значков, он должен быть добавлен в панель слева. И так оно и есть.

Однако, когда я нажимаю другой значок, ничего не происходит. Функция, которую он должен вызвать, не запускается (я проверил, поставив alert () в начале этого).

Когда я закрываю оверлей (кнопка в верхнем левом углу) и снова открываю его (внизу слева), я могу добавить еще один значок. Но опять же, следующее событие не будет срабатывать, пока оверлей не будет закрыт и не откроется еще раз.

Я не знаю, как легко это будет исправляться, поскольку я не уверен, все ли переживают эту проблему. Я (на моем Samsung GT-P6200 под управлением Android 4.0.4). Кто-то еще пожаловался мне об этом. Однако в эмуляторе Android, включенном в SDK, такого типа не происходит с Android 4.1 и 4.1. Кажется, это проблема 4.0.

Значок в наложении выглядит так: <div class="appLauncher" onClick="launchApp (' + i + ')"><img src="data:image/png;base64,' + base64 + '" alt="[~]" /><br /><span>' + label + '</span></div>

Я использую jQuery для общения с DOM, если это имеет значение.

 function launchApp (i) { // Putting an alert () here indicates that the function doesn't get called, because no alert box appears on the screen // try { if (! launcherEdit) { android.launchAppFromList (i); } else { addAppToLauncherFromList (i); // This is what should happen // } } catch (ex) { handleException (ex); } } 

Само приложение можно найти здесь; https://play.google.com/store/apps/details?id=be.robinj.ubuntu
Здесь можно найти исходный код; http://bazaar.launchpad.net/~robinj/be.robinj.ubuntu/trunk/files
И это файл Javascript; http://bazaar.launchpad.net/~robinj/be.robinj.ubuntu/trunk/view/head:/assets/script.js


И, пожалуйста, просто пожалуйста, не закрывайте это как «точный дубликат», не понимая, какова фактическая проблема, как это случалось много раз раньше.


Этот кровавый беспорядок появляется только на Android 4.0.4 и ниже (или где-то рядом с этим номером версии). Это только щелчки на appLaunchers, которые полностью игнорируются.


Я начинаю видеть какое-то соединение здесь … Он всегда начинает терпеть неудачу после анимации jQuery, добавив элемент в левую полосу. Это начинает выглядеть подозрительно, как проблема перерисовки …


Не уверен, связано ли это, но видел, как он появляется в моей консоли …

 02-12 14:30:22.650: E/dalvikvm(3936): JNI ERROR (app bug): attempt to use stale global reference 0xe 02-12 14:30:22.650: E/dalvikvm(3936): VM aborting 02-12 14:30:22.650: A/libc(3936): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1) 

Если вы используете jQuery, чем лучше, используйте событие bind для привязки события click.

Например:

  <div class="appLauncher" data-id= ' + i + '"> <img src="data:image/png;base64,' + base64 + '" alt="[~]" /><br /><span>' + label + '</span></div> 

И чем в файле javascript, который вы используете:

 $(".appLauncher").bind("click",function(){ var i=$(this)attr("data-id"); launchApp(i); }); 

Попробуйте и дайте мне знать, это поможет вам или нет 🙂

Не так много из javascript, но я знаю, что Android делает четкое различие между триггерами «один» и повторно используемыми триггерами (PendingIntents). Возможно ли, что вы каким-то образом создаете экземпляр, похожий на .appLaunch?

Я полагаю, вы попали в вопрос 19827

В этом случае попробуйте добавить вызов preventDefault (не проверен)

 $(".appLauncher").bind("click", function(e) { e.preventDefault(); var i = $(this)attr("data-id"); launchApp(i); }); 

Я посмотрел http://bazaar.launchpad.net/~robinj/be.robinj.ubuntu/trunk/view/head:/assets/script.js

Вы установили «var scrollable = Array ()» в ваш файл сценария. Разве это не новый Array () или просто []

Просто попробуйте, если это связано с вашей ошибкой JNI (ошибка приложения): попытка использовать устаревшую глобальную ссылку 0xe

Intereting Posts
Два сервера node.js? Обнаружение использования кнопки Android назад с помощью javascript Видовое окно соответствует ширине экрана и большим изображениям Приложение для Android, которое подключается к веб-сайту IIS с помощью проверки подлинности Windows Перетаскивание нескольких видов кнопок в java Установка атрибута screenBrightness на 0.0f в Android 4.2.2 больше не отключает экран? В чем разница между этим и Activity.this Android – SPAN_EXCLUSIVE_EXCLUSIVE пролеты не могут иметь нулевую длину Gradle не может разрешать зависимости в Android Studio Веб-просмотр Android иногда не загружает изображения Что может привести к тому, что AsyncTask не будет выполняться? Как сгенерировать Keyhash (Facebook) с помощью Keytool в android для W7 32bit Как отключить прослушиватель кликов в режиме просмотра изображений Что лучше: 1 таблица за запись или 1 таблица со всеми записями, связанными с внешними ключами? Использование кеша в ExoPlayer