应用未在 iO 中运行时的本地区域识别

Posted

技术标签:

【中文标题】应用未在 iO 中运行时的本地区域识别【英文标题】:Local Region recognition while the app isn't running in iOs 【发布时间】:2018-07-27 15:07:00 【问题描述】:

我正在开发一个简单的应用程序,当我按下一个按钮时,它会创建一个本地区域。直到一切正常,应用程序创建区域并在我输入时正确通知,即使我的应用程序在后台。现在,我认为我的问题很棘手。我可以创建一个应用程序,它在运行时会创建一个本地区域,但即使它没有运行,也会通知我们进入了之前创建的区域?我想知道是否有一种方法可以让我监控重大的位置变化,即使应用程序关闭也是如此。如果此方法识别出(应用程序仍处于关闭状态)我已进入本地区域,则开始上传我的位置(我不知道,有一个恒定的间隔或其他东西)。

【问题讨论】:

【参考方案1】:

您可以设置一个区域,您的应用将通过 UIApplication 的启动选项获得通知。这将启动您的应用程序,然后您可以处理该事件。当应用仍在后台时,您可以执行的操作会有一些限制。

这篇来自 Apple 的文章应该会有所帮助:https://developer.apple.com/documentation/corelocation/monitoring_the_user_s_proximity_to_geographic_regions

编辑:您还必须在功能中为后台模式启用Location updates

【讨论】:

谢谢!在这篇文章中,Regions 由系统监控。因此,系统也可以在关闭应用程序的情况下监控区域。但是我该如何实现呢?我已经实现了函数createRegion,所以当它被调用时,它会创建一个区域,停止更新位置并开始监控区域。我这样做是因为我只想在进入区域时才再次开始更新位置。但是监控区域的功能只有在应用程序正在运行或在后台时才起作用。我不知道如何在应用未运行时使该功能正常工作! 我不太明白你是如何实现它的。该系统是唯一可以访问 GPS 芯片的设备,该芯片反过来会通知应用程序“监听”位置变化。创建区域时,您是在告诉系统您对该区域周围的 GPS 变化感兴趣。您能否使用创建区域的代码更新您的帖子? 另外,当你进入一个区域,应用被终止时,系统会通过你的appDelegate中的didFinishLaunchingWithOptions方法唤醒你的应用。 UIApplicationLaunchOptionsLocationKey 是传递给该方法的特定选项键。 developer.apple.com/documentation/uikit/… 对不起,我不是说我自己实现的。我的意思是我以这种方式使用该功能。原谅我的错误!我会尽快更新代码!谢谢!

以上是关于应用未在 iO 中运行时的本地区域识别的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序在本地运行时,Node.js 能够连接到 MySQL 容器,但当应用程序在容器中运行时无法连接

Windows 应用程序在 Visual Studio 2019 中运行时工作,在我在本地构建和运行后工作,但是当提交到应用商店并下载时,它不运行

Spark在本地运行但在YARN中运行时找不到文件

如何在 react-native iOS 应用程序中运行时读取 Info.Plist?

如何在 react-native iOS 应用程序中运行时读取 Info.Plist?

在 Amazon EMR 集群中运行时,Spark 广播变量返回 NullPointerException