Ios 将从位置唤醒应用程序后,didFinishLaunchingWithOptions中的LaunchOptions为零
我在网上搜索了一下,发现一些人也有同样的问题,但还没有人找到任何解决办法。。。所以我希望这里的任何人都是我要寻找的G 1-我在后台模式下启用了“位置更新”和“后台提取” 2-我确实在正确的位置调用了Ios 将从位置唤醒应用程序后,didFinishLaunchingWithOptions中的LaunchOptions为零,ios,swift,location,Ios,Swift,Location,我在网上搜索了一下,发现一些人也有同样的问题,但还没有人找到任何解决办法。。。所以我希望这里的任何人都是我要寻找的G 1-我在后台模式下启用了“位置更新”和“后台提取” 2-我确实在正确的位置调用了locationManager.startMonitoringSignificantLocationChanges(),我在终止应用程序后将其唤醒时,在写入并串入Firebase数据库的过程中检查了这一点 3-我正在检查launchOptions中是否有一个位置键,就像他们文档中的Apple一样,请
locationManager.startMonitoringSignificantLocationChanges()
,我在终止应用程序后将其唤醒时,在写入并串入Firebase数据库的过程中检查了这一点
3-我正在检查launchOptions中是否有一个位置键,就像他们文档中的Apple一样,请参阅:
那么为什么我的启动选项为零?我不明白为什么会这样。。。因为应用程序正在被唤醒,所以错误不可能发生在我的locationManager处理上
我在stackoverflow上发现了这个,但是我的启动选项为零,所以代码没有进入if。。。
请帮助。看起来您没有在数据库中保存更改。
添加日志并检查发生的情况。
如果使用密码锁定设备,则可以锁定数据库文件。当
位置发生显著变化时,也会发生这种情况。我希望它能帮助你-
另外,对于startMonitoringSignificantLocationChanges()
您不需要启用“位置更新”,它需要startUpdatingLocation()
UPD:
如果您启动此服务并随后终止您的应用程序,则
如果出现新的应用程序,系统会自动将其重新启动到后台
活动开始了。在这种情况下,选项字典将传递给
应用程序(:willFinishLaunchingWithOptions:)和
应用程序(:didFinishLaunchingWithOptions:)的方法
委托包含用于指示您的应用程序已启动的密钥位置
由于位置事件而启动。重新启动后,您仍必须
配置位置管理器对象并调用此方法以继续
接收位置事件。当您重新启动位置服务时
当前事件将立即传递给您的代理。此外
将填充location manager对象的location属性
在开始定位之前使用最近的位置对象
服务
位置应该在您的启动选项中,我建议只在控制台中打印启动选项。并使用(可从XCode->Devices->{your device}查看),显示哪些键 谢谢,但我不知道你的意思,写入数据库工作得很好,只是当应用程序被唤醒进入后台模式时没有设置locationKey。我确实读过,如果启用了位置更新的后台模式复选框,那么这个键只会在字典中。如果我误解了什么,请告诉我。我在数据库中输入“wokeUp”的第一行正在运行。只有“如果”(我想在其中创建包含所有键的列表)失败,因为“启动选项”中没有键。@alarsut我建议只在控制台中打印“启动选项”。查看(可从XCode->Devices->{your device}查看),有哪些键?请与我联系好吗?只要用你的skypename或任何你拥有的东西给我写封电子邮件到KochhilFeatureCloudDotcom就行了。我不知道该怎么做。日志未显示,启动选项为零。我将添加解决方案,如果我们得到一个,在我的帖子下,更新标记为…嗨,你找到解决方案了吗?我在@aledap I notised遇到了同样的问题,我的应用程序在移动时是从后台启动的,因此它确实可以工作,但我的启动选项始终为空,因此我使用用户默认值保存了一个值,通过启动,我检查该值是否为真,并根据该值运行一些代码,但这只起作用,因为我只有一个原因为什么它从后台启动,如果你有不止一个原因,那么就很难知道为什么应用程序已经启动了。。。