OK - принято довольно долго, но сделал это .. Довольно запутанный для вновь PhoneGap/HTML парень. Как jcesarmobile указал - PhoneGap не делает этого для вас и navigator.notification.beep (1) не то, что я был после.
Невозможно написать плагин.
Номер обучения 1: PhoneGap 3 имеет аккуратный механизм для установки плагинов, что позволяет вам загружать файлы в нужное место в проекте и добавлять теги функций в нужном файле config.xml. Не все примеры в сети упоминают об этом.
Номер обучения 2: Проекты без буквы «Столица» в начале имени, похоже, вызывают проблему при добавлении плагинов ». Я использовал «плагины для телефонии add xxxx» на века, но файлы .h и .m не копировались, как ожидалось.
Номер обучения 3: у плагина есть функция «создать», которая сочетает в себе приятный шаблон плагина для вас. Я нашел это после того, как сделал свой собственный вручную, но там вы идете.
Учимся номер 4: plugman шаблон Сета цель для «cordova.plugins.xxx», так что не забудьте использовать, чтобы позвонить вам родную функцию от вашего Javascript (т.е. cordova.plugins.yourMethod)
Примечание 1: plugman создает пример с помощью одного метода (coolMethod). Вам нужно будет изменить это (очевидно). Кроме того, у него есть один файл .m, а не более типичные файлы .h и .m.
Уверен, что на пути было больше препятствий, но они не могут их вспомнить сейчас.
В конце концов, нативный код был очень прост. Я уже давно использовал вызов AudioServicesPlaySystemSound в быстром проекте, так что родной бит был намного легче для меня, чем для остальных.
Код приведен ниже. Вы заметите, что я возвращаю только успешный результат и устраняю обработку всех параметров.
(пустоты) clickSound: (CDVInvokedUrlCommand *) Команда { CDVPluginResult * pluginResult = ноль;
dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^ { AudioServicesPlaySystemSound (0x450); }); pluginResult = [CDVPluginResult resultWithStatus: CDVCommandStatus_OK messageAsString: @ "done"]; [self.commandDelegate sendPluginРезультат: pluginResult callbackId: command.callbackId];
}
@end
Спасибо за ответ. Функция звукового сигнала несколько странная в iOS и не такая же, как обычная клавиатура ОС. – Dave
звуковой сигнал - это единственная звуковая кордова. Обычная клавиша «клавиатура» операционной системы вызывается местной клавиатурой, если у пользователя есть звук активным, см. Мое редактирование, чтобы проверить, как воспроизводить входной звук клавиатуры. – jcesarmobile
Отлично. Теперь прогресс в плагине. Поделитесь, когда я получу его работу. – Dave