我正在使用Skobbler导航SDK以快速语言开发IOS应用程序。 我尝试允许用户在后台模式下使用导航(iPhone已锁定)。
我有以下问题:
1)是否可以在不使用SDKTools和SKTNavigationManager的情况下这样做?我们只使用SKMaps.frameworks函数。
使用此配置,我无法使用allowBackgroundNavigation SKTNavigationConfiguration的属性,如演示文稿。
我设定了SKPositionerService.sharedInstance().worksInBackground = true
并允许在BackgroundMode中使用"位置更新"到info.plist。不幸的是,updateCurrentLocation并没有在后台触发,导航也不起作用。
非常感谢您:-) !!
P.S。 :我成功地使用官方库CCLocationManager在后台运行了一个短代码。所以我的应用似乎配置正确...
答案 0 :(得分:1)
可以从此处下载此问题的修补程序:
ObjC:https://www.dropbox.com/s/ruk6at2fju0rdd7/SKMaps_2_5_1.zip?dl=0
斯威夫特:https://www.dropbox.com/s/lgbdherhqzudy2a/SKMapsSwift_2_5_1.zip?dl=0
答案 1 :(得分:0)
抱歉..这不是答案,而是一个相同的问题"。当应用在后台时,不会调用updatedCurrentLocation
。
以为我添加了一些代码来提供更多信息,也许找到原因:
我的代码:
SKPositionerService.sharedInstance().delegate = self
SKPositionerService.sharedInstance().worksInBackground = true
SKPositionerService.sharedInstance().automaticLocationUpdatePause = false
SKPositionerService.sharedInstance().startLocationUpdate()
还尝试将SKPositionerService.sharedInstance().startLocationUpdate()
作为第一行。没有运气。
当我像SKPositionerService一样运行CLLocationManager时:
locManager = CLLocationManager()
locManager.desiredAccuracy = 10000
locManager.distanceFilter = 10000
locManager.allowsBackgroundLocationUpdates = true
locManager.pausesLocationUpdatesAutomatically = false
locManager.startUpdatingLocation()
updatedCurrentLocation
在后台被调用。
我在运行2.5.0时使用了这个,因为该版本尚未准备好iOS9,但我认为2.5.1会是。这当然是一个可怕的解决方法,因为第二位置管理员吃电池。
可能是,在SKPositionerService实现中,当CLLocationManager().allowsBackgroundLocationUpdates
设置为true时,您没有将SKPositionerService.sharedInstance().worksInBackground
设置为true吗?
顺便说一下,我正在运行发布here的2.5.1热修复程序。
btw2:无法在模拟器中测试。即使应用程序背景为',模拟器也会调用updatedCurrentLocation
。我在猜测,因为模拟器并没有真正的背景'模式。
btw3:如果后台模式适用于SDKTools导航管理器,我会非常惊讶...使用此2.5.1。热修复)