手机缺口 - iOS键盘点击声音

时间:2015-02-17 18:56:49

标签: ios cordova

我看了一眼,但我很惊讶地发现我找不到一个插件或功能来简单地通过Phonegap发出键盘点击声音。我的用例是我已经实现了一个自定义数字键盘,我想简单地提供一个声音点击'当用户点击按钮时。 这只是一个使用媒体插件并播放声音的情况吗?我有点想到,简单地调用操作系统会更容易。

花了一些时间查看自定义插件,但我是PhoneGap的新手,所以想收集选项。

欢迎提出建议。

2 个答案:

答案 0 :(得分:0)

对话框插件具有蜂鸣功能

安装插件:

cordova plugin add org.apache.cordova.dialogs

使用哔声

navigator.notification.beep(1);

如果要播放本机键盘输入声音,则必须在自定义插件上使用此代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),     
^{
    AudioServicesPlaySystemSound(1104);
}); 

[[UIDevice currentDevice] playInputClick];

您可以使用的其他声音ID列表

http://iphonedevwiki.net/index.php/AudioServices

答案 1 :(得分:0)

好的 - 花了很长时间但是做了..对于一个新的PhoneGap / HTML家伙来说相当复杂。 正如 jcesarmobile 所指出的那样 - PhoneGap并没有为你做这件事,而navigator.notification.beep(1)并不是我所追求的。

没有选择,只能写一个插件。

学习数字1 :PhoneGap 3具有安装插件的简洁机制。节省大量时间将文件粘贴在项目中的正确位置,并将功能标记添加到正确的config.xml中。并非网上的所有例子都提到了这一点。

学习数字2 :在名称开头没有大写字母的项目在添加插件时似乎会出现问题'。我正在使用' phonegap插件添加xxxx'很久但.h和.m文件未按预期复制。

学习3号:插件有一个'创建'为您整理好的插件模板的函数。我手动制作后发现了这个,但你去了。

学习数字4 :插件模板设置为" cordova.plugins.xxx"所以不要忘记使用它来从你的Javascript中调用你的本机函数(即cordova.plugins.yourMethod)

注1 :plugman使用单个方法(coolMethod)创建示例。你需要改变它(显然)。此外 - 它有一个.m文件,而不是更典型的.h和.m文件。

当然,沿途还有更多障碍,但现在无法回想起来。

最后,本机代码非常简单。我已经使用过' AudioServicesPlaySystemSound'不久之后打电话给一个快速的项目,所以本地比我更容易。

代码如下。您会注意到我只返回一个成功的结果并取消所有参数处理。

  • (无效)clickSound:(CDVInvokedUrlCommand *)命令 { CDVPluginResult * pluginResult = nil;

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),                ^ {                    AudioServicesPlaySystemSound(0x450); }); pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@" done"]; [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];

}

@end