我看了一眼,但我很惊讶地发现我找不到一个插件或功能来简单地通过Phonegap发出键盘点击声音。我的用例是我已经实现了一个自定义数字键盘,我想简单地提供一个声音点击'当用户点击按钮时。 这只是一个使用媒体插件并播放声音的情况吗?我有点想到,简单地调用操作系统会更容易。
花了一些时间查看自定义插件,但我是PhoneGap的新手,所以想收集选项。
欢迎提出建议。
答案 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列表
答案 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