当iOS中的phonegap应用程序处于后台时,嘟嘟声不起作用

我正在开发基于phonegap的导航应用程序的iOS版本。 我的应用程序使用GPS跟踪用户在步行路线周围的位置,并在用户使用audio(navigator.notification.beep)和触觉(navigator.notification.vibrate)反馈时提醒用户,当他们到达有新指令供他们使用的位置时。

当我的应用程序在前台运行时,在到达地理位置时会发出蜂鸣声和振动,但是当应用程序在后台暂停时,可以通过按电源buttonclosures屏幕,或者按主页button返回到跳板,只有振动的作品 – 嘟嘟声是不可闻的。 我已经添加了debugging,所以我可以在日志文件中看到应用程序在后台调用navigator.notification.beep(),但不发出哔声。 我已经在运行iOS 5.1.1和运行iOS 5.1.1的iPad 2的iPhone 4S上testing了我的应用程序。 很明显,iPad不会震动,但是蜂鸣声在应用程序处于前台而不是在后台运行。

  • 我的应用程序正在使用Phonegap 2.5.0
  • 我正在使用最新的Xcode v4.6.2和最新的SDK for iOS 6.3.1
  • 我在/ www root中使用了beep.wav
  • 我的应用程序的.plist设置“位置”和“audio”的“UIBackgroundModes”
  • 我的config.xml包含设置:

    <plugin name =“Notification”value =“CDVNotification”/>

    <plugin name =“Media”value =“CDVSound”/>

    <preference name =“MediaPlaybackRequiresUserAction”value =“false”/>

    <preference name =“AllowInlineMediaPlayback”value =“true”/>

任何build议如何解决这个问题将不胜感激:-)

如果有人感兴趣,下面是我解决这个问题的方法:

我更新了用于Cordova 2.x的本地通知 phonegap插件。 我使用这个插件为www / beep.wav中的手机放置相同的声音,为iOS的项目资源中的本地通知(如beep.caf)提供前景嘟嘟声的背景嘟嘟声和phonegap。

function doBeep(){ cordova.require('cordova/plugin/localnotification').add( function(){ console.log("Successfully added local notification"); }, function(){ console.error("Error adding local notification"); },{ date: new Date(new Date().getTime()), repeat:'', message: '', // No message so just beep hasAction: true, badge: 0, id: '1', background:'background', foreground:'running', sound: 'beep.caf' } ); } function running(){ console.log("Running in the foreground so use a phonegap notification"); navigator.notification.beep(); } function background(){ console.log("Running in the background so an iOS local notification will be used"); }