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

当phonegap应用程序位于iOS后台时,嘟嘟声不起作用,ios,geolocation,notifications,cordova,background-process,Ios,Geolocation,Notifications,Cordova,Background Process,我正在开发基于phonegap的导航应用程序的iOS版本。我的应用程序使用GPS跟踪用户在步行路线周围的位置,并在用户到达有新指示可供其遵循的位置时,使用音频(navigator.notification.beep)和触觉(navigator.notification.vibrate)反馈提醒用户 当我的应用程序在前台运行时,在到达地理位置时会发出嘟嘟声和振动声,但当应用程序在后台暂停时,无论是按电源按钮关闭屏幕还是按home按钮返回跳板,只有振动声起作用-嘟嘟声听不到。我添加了调试,以便在日志

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

当我的应用程序在前台运行时,在到达地理位置时会发出嘟嘟声和振动声,但当应用程序在后台暂停时,无论是按电源按钮关闭屏幕还是按home按钮返回跳板,只有振动声起作用-嘟嘟声听不到。我添加了调试,以便在日志文件中看到应用程序正在后台调用navigator.notification.beep(),但没有发出嘟嘟声。我已经在运行iOS 6.3.1的iPhone4S和运行iOS 5.1.1的iPad2上测试了我的应用程序。显然,iPad不会振动,但当应用程序在前台时,嘟嘟声会工作,而在后台时则不会

  • 我的应用程序正在使用Phonegap 2.5.0
  • 我正在使用最新的Xcode v4.6.2和最新的iOS 6.3.1 SDK
  • 我正在/www根目录中使用
  • 我的应用程序的.plist设置“位置”和“音频”的“UIBackgroundModes”
  • My config.xml包含以下设置:


任何关于如何解决此问题的建议都将不胜感激:-)

如果其他人对此感兴趣,以下是我解决此问题的方法:

我更新了phonegap插件以用于Cordova 2.x。我使用该插件为前台蜂鸣声提供背景蜂鸣声和phonegap,方法是在www/as beep.wav中为phonegap设置与在iOS项目资源中作为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");
}

你有没有可能发布测试接近度(“当它们到达某个位置时”)条件测试的代码?当然,我可以做,但如何做有点复杂:由于GPS波动,现实世界的测试导致我使用受限的交叉轨道距离计算。也许作为一个新问题发布,发布/发送一个指向它的链接,然后我就可以回答它了?那么它就不会隐藏在这个问题下,其他人可以找到它…:-)融合27:我回答了你的问题+1将不胜感激:-)