Функции Vibrate() и beep() PhoneGap ломаются в эмуляторах iPhone и Android

У меня есть приложение PhoneGap, которое я тестирую на webOS, Android и iPhone. Я использую физические устройства, а также эмуляторы (те, которые поставляются с соответствующими SDK, а не эмулятор PhoneGap).

Часть кода использует функции navigator.notification.vibrate() и navigator.notification.beep().

Все физические устройства, которые я использую, либо выполняют это поведение, либо игнорируют его, если они не способны (например, iPod не может вибрировать). Однако эмуляторы ведут себя по-разному.

Эмулятор Android убивает приложение всякий раз, когда вызывается функция beep(). Эмулятор iPhone заставляет приложение зависать всякий раз, когда вызывается функция vibrate().

Есть ли способ заставить эмуляторы игнорировать эти вызовы функций, когда они не могут их выполнить? То есть есть ли способ заставить их изящно деградировать, чтобы я мог протестировать приложение в обоих местах без необходимости изменять код специально для эмуляторов?


person Steve Nay    schedule 20.05.2010    source источник


Ответы (1)


Я не думаю, что это проблема с эмуляторами. Я могу использовать как вибрацию, так и звуковые оповещения в своих родных приложениях. Оба они прекрасно работают в эмуляторе. Я думаю, что проблема в том, как PhoneGap обрабатывает эти функции в собственном коде. Вы предлагаете, чтобы эти функции работали на устройстве, но не на эмуляторе?

person sgarman    schedule 21.05.2010
comment
Точно. Сами устройства работают нормально (если у них есть физическая возможность издавать вибрацию/звуковой сигнал), но иногда эмуляторы умирают. Есть ли обходной путь PhoneGap для эмуляторов? - person Steve Nay; 21.05.2010