Le bip ne fonctionne pas lorsque l'application phonegap est en arrière-plan sur iOS

Je travaille sur la version iOS de mon application de navigation basée sur le téléphone. Mon application suit la position de l'user autour d'un itinéraire de marche en utilisant le GPS et alerte l'user en utilisant les commentaires audio (navigator.notification.beep) et tactiles (navigator.notification.vibrate) lorsqu'ils arrivent à un endroit où il y a de nouvelles instructions à suivre.

Lorsque mon application fonctionne au premier plan, le bip sonore et la vibration se triggersnt en atteignant l'location géographique mais lorsque l'application est en pause en arrière-plan, soit en appuyant sur le button d'alimentation pour éteindre l'écran ou en appuyant sur le button d'accueil au tremplin, seule la vibration fonctionne – le bip n'est pas audible. J'ai ajouté le debugging afin que je puisse voir dans le file journal que l'application appelle navigator.notification.beep () en arrière-plan mais le son bip n'est pas fait. J'ai testé mon application sur un iPhone 4S sous iOS 6.3.1 et iPad 2 sous iOS 5.1.1. Évidemment, l'iPad ne vibre pas mais le bip fonctionne alors que l'application est au premier plan mais pas en arrière-plan.

Toutes les suggestions pour résoudre ce problème seraient les plus appréciées 🙂

Au cas où quelqu'un d'autre serait intéressé, voici comment j'ai résolu ceci:

J'ai mis à jour le plugin phonegap Local Notifications pour l'utiliser avec Cordova 2.x. J'ai utilisé le plugin pour fournir le bip d'arrière-plan et le bip pour le bip d'avant-plan en plaçant le même son pour phonegap dans www / beep.wav que pour la notification locale dans le projet iOS Resources comme beep.caf.

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"); }