iOS:在服务器发出请求后开始上载用户位置

iOS:在服务器发出请求后开始上载用户位置,ios,gps,notifications,push-notification,tracking,Ios,Gps,Notifications,Push Notification,Tracking,我需要做到这一点:我有一个应用程序,它希望跟踪家庭成员的位置。因为我不想让GPS一直运行,所以我想当某个家庭成员想知道我的位置时,我可以从服务器发送一个请求 但我遇到了一些问题: 我不能使用推送通知,因为这些需要确认(点击),并且只有在应用程序知道发生了什么之后。(这不太好,因为孩子们可能不会点击推送通知) 另一个选择是让应用程序在后台运行,检查服务器是否有任何新闻,如果它只在服务器上发现一些请求,则启动GPS跟踪并将坐标上传到服务器。这听起来好一点,但也消耗电池 有人试过这个吗?有没有更好的办


我需要做到这一点:我有一个应用程序,它希望跟踪家庭成员的位置。因为我不想让GPS一直运行,所以我想当某个家庭成员想知道我的位置时,我可以从服务器发送一个请求
但我遇到了一些问题:
我不能使用推送通知,因为这些需要确认(点击),并且只有在应用程序知道发生了什么之后。(这不太好,因为孩子们可能不会点击推送通知)
另一个选择是让应用程序在后台运行,检查服务器是否有任何新闻,如果它只在服务器上发现一些请求,则启动GPS跟踪并将坐标上传到服务器。这听起来好一点,但也消耗电池
有人试过这个吗?有没有更好的办法解决这个问题

谢谢大家的反应!:)

是的,我想你剩下的唯一选择就是在后台运行定位服务

为此,在Plist中设置
所需的后台模式
应用程序注册位置更新
。这将使您能够根据需要发送位置更新。 但请注意,这仅在应用程序正在运行或在后台运行时有效,而在应用程序关闭时不会运行。若用户关闭了你们的应用程序,那个么若你们从设备上得到了任何更新,你们可以发出推送通知

另外,请注意,您需要在应用程序的说明中提到,该应用程序使用的定位服务将耗尽您的电池电量,否则您的应用程序将不会获得批准


希望此信息对您有所帮助。

我们在应用程序中遇到类似问题。我们遵循的方法是,无论何时收到任何通知,都会监听推送通知端口,然后检查它是否适用于我们的应用程序,然后做出相应的反应

我们可以长时间监听端口以节省电池消耗。
很抱歉,无法与您共享任何代码,但我希望这可能会有所帮助。

您能提供一个引用此代码的示例链接吗?我现在没有任何可用的链接。让我告诉您一些基本信息,使用
sysctlbyname(“net.inet.tcp.pcblist”,buffer,&lenth,0,0)不会对我造成伤害
您可以找到
inpcb结构
。然后在
ntohs(inpcstruct->imp\u fport)
的帮助下,您可以获取端口。将此端口与5223和443进行比较。这是用于侦听的。一旦您知道有通知,请询问服务器是否有任何应用程序数据。很抱歉,我的回答有点错误。我们听了2个通知帖子n,每当我们知道有通知时,我们会通过服务器询问它是否有任何数据。这很有趣。如果我可以问的话,你是如何在后台检查这些数据包的?您是否已将应用注册为voip应用以在后台运行?(我在后台工作方面不是很有经验,所以请原谅我的蹩脚问题:))最后,你认为在我检查服务器并确定我需要发送位置后,是否可以启动位置服务,或者我是否需要一直保持位置服务活动,并在需要时发送当前信息?谢谢