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