我目前正在开发基于位置的Cordova + Meteor(iOS)移动应用,我需要密切关注用户的位置,即使应用已被终止。
为此,我尝试实现了cordova-background-geolocation-lt插件,但我遇到了问题:https://github.com/transistorsoft/cordova-background-geolocation-lt/issues/221
因此,我正在考虑编写自己的本机(obj-c / swift)插件(部分使用来自this answer的代码),该插件将获得用户的位置并将其发送到服务器。 / p>
我的问题是:
来自this answer:
当iOS想要将位置更新返回给应用时,它会帮助您重新启动应用并将密钥UIApplicationLaunchOptionsLocationKey返回给应用委托方法didFinishLaunchingWithOptions。
当应用程序被终止/终止/暂停时 - 是否可以重新启动部分Cordova应用程序 - 仅负责后台地理位置跟踪的本机代码并将其发布到服务器而不完全重新启动整个应用程序 - JS part& ;流星部分?
答案 0 :(得分:1)
这里有一篇关于后台任务的Apple文章:https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
Meteor生成IOS代码,但您可以使用XCode稍微修改项目和代码,或者我认为您在创建插件的方法中是正确的,因为那时您在本地环境中并且可以执行这些操作。
答案 1 :(得分:1)
解决此问题后,我能够在Meteor
+ Cordova
项目中成功使用this插件:https://github.com/transistorsoft/cordova-background-geolocation-lt/issues/221。事实证明,此问题是由于应用程序进入后台状态后Meteor
的本地服务器暂停。它特定于Meteor-Cordova
项目