【发布时间】:2017-05-18 03:40:39
【问题描述】:
我目前正在开发基于位置的 Cordova + Meteor (iOS) 移动应用,我需要在其中密切关注用户的位置,即使应用已终止。
为此,我尝试实现 cordova-background-geolocation-lt 插件,但我遇到了问题:https://github.com/transistorsoft/cordova-background-geolocation-lt/issues/221
因此,我正在考虑编写自己的本机 (obj-c/swift) 插件(部分使用来自 this answer 的代码),它将获取用户的位置并将其发送到服务器。
我的问题是:
来自this answer:
当 iOS 想要将位置更新返回给应用程序时,它会帮助您重新启动应用程序并返回一个密钥 UIApplicationLaunchOptionsLocationKey 给应用程序委托方法 didFinishLaunchingWithOptions。
当应用程序被终止/终止/暂停时 - 是否可以仅重新启动 Cordova 应用程序的一部分 - 仅负责后台地理定位跟踪并将其发布到服务器而不完全重新启动整个应用程序的本机代码 - JS 部分和流星部分?
【问题讨论】:
-
没有选项可以做到这一点。 Cordova 应用程序要么全有,要么全无。不用担心内存占用,这就是操作系统所关心的
-
@Mikkel,这很糟糕.. 你看,Meteor-Cordova 应用程序在它被杀死并且
locationManager收到SignificantLocationChanges后没有重新启动。SignificantLocationChanges应该自动重新启动应用程序,但是使用 Cordova 和 Meteor 堆栈时,应用程序不会重新启动 - 有些东西会阻止它.. 所以我认为从 Cordova 应用程序的其余部分抽象地理定位(本机模块)是有可能的。 ..