【问题标题】:Meteor + Cordova: getting user's location when app is terminatedMeteor + Cordova:在应用程序终止时获取用户的位置
【发布时间】: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 应用程序的其余部分抽象地理定位(本机模块)是有可能的。 ..

标签: ios cordova meteor


【解决方案1】:

解决此问题后,我能够在我的Meteor + Cordova 项目中成功使用this 插件:https://github.com/transistorsoft/cordova-background-geolocation-lt/issues/221。原来这个问题是由于应用程序进入后台状态后Meteor的本地服务器挂起。它特定于 Meteor-Cordova 项目

【讨论】:

    【解决方案2】:

    这里有一篇关于后台任务的苹果文章:https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

    Meteor 生成 IOS 代码,但您可以使用 XCode 对项目和代码进行一些修改,或者我认为您创建插件的方法是正确的,因为您在本机环境中并且可以执行这些操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多