手机间隙-iOS键盘点击声



我看了又看,但很惊讶地发现,我找不到一个插件或函数来简单地通过Phonegap发出键盘点击声。我的用例是,我实现了一个自定义的数字键盘,我只想在用户点击按钮时提供一个可听见的"点击"。这只是一个使用媒体插件并播放声音的例子吗?我觉得简单调用操作系统会更容易。

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

欢迎提出建议。

对话框插件具有提示音功能

安装插件:

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

好-花了很长时间,但完成了。对于一个新的PhoneGap/HTML家伙来说,这相当复杂。正如jcesarmobile所指出的那样,PhoneGap不是为你和导航器做这件事的。notification.beep(1)不是我想要的。

别无选择,只能写一个插件。

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

学习编号2:名称开头没有大写字母的项目在添加插件时似乎会引起问题。我使用"phonegap plugins add xxxx"已经很长时间了,但.h和.m文件并没有像预期的那样被复制。

学习编号3:plugman有一个"创建"功能,可以为您构建一个不错的插件模板。我在手工制作后发现了这个,但你看。

学习编号4:plugman模板集的目标是"cordova.plugins.xxx",所以不要忘记使用它从您的Javascript(即cordova.prlugins.yourMethod)调用您的本机函数

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

当然,一路上还有更多的障碍,但现在已经记不起来了。

最终,本机代码真的很简单。不久前,我已经在一个swift项目中使用了"AudioServicesPlaySystemSound"调用,所以原生部分对我来说比其他部分容易得多。

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

  • (void)单击声音:(CDVInvokedUrlCommand*)命令{CDV插头结果*插头结果=零;

    dispatch_async(dispatch_get_global_queue(dispatch_queue_PRIORITY_DEFAULT,0),^{音频服务播放系统声音(0x450);});pluginResult=[CDVPluginResult resultWithStatus:CDVCommonStatus_OK messageAsString:@"done"];[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];

}

@结束

最新更新