• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iOS11 - 无限期在后台运行应用程序

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:12:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我需要设计一款适合人们的应用。

  1. 用户 A 将地点标记为“我在这里”。具有特定范围,例如150 米。
  2. 用户 B 使用范围标记地点,其中包括用户 A。
  3. 如果它们在标记位置的范围内,则会进行匹配。
  4. 如果任何用户不在他们的范围内。那么用户将不会与新用户匹配。

有了这个要求,我面临着很多挑战。

如果用户 A 标记了他的位置并且他离开了该区域,CoreLocation 包含一个类似 Region Monitoring 的功能。所以我可以随时跟踪用户退出他们所在地区的情况。它确实是一个很好的功能,即使应用程序处于暂停或终止状态,它也会唤醒应用程序。

如果所有用户都有有效的互联网连接,则完全没有问题。 因此,如果任何用户的互联网连接丢失,然后用户退出他们的区域,那么他们就无法将 CoreLocation 区域监控已经提供的退出区域通知发送到节点服务器。

但是如果用户用区域标记坐标然后用户已经退出并且用户没有互联网连接,则不会发送exitRegion信息。因此,即使不在范围内,用户也会得到匹配。

所以在这种情况下,在任何比赛之前,我需要 ping 用户,例如“嘿,你在吗”或 Region Monitoring 提供的 regionState

问题从这里开始,

作为一个想法,我想我可以使用静默通知,如果在应用程序唤醒后 30 秒的有限后台工作后我没有得到客户端的响应,我可以考虑它“我不知道如果用户已经在其区域中”然后不产生匹配。但是每当有新人来到 MongoDB 时,我都无法向所有客户端发送静默通知。

苹果这么说;

Silent notifications are not meant as a way to keep your app awake in the background, nor are they meant for high priority updates. APNs treats silent notifications as low priority and may throttle their delivery altogether if the total number becomes excessive. The actual limits are dynamic and can change based on conditions, but try not to send more than a few notifications per hour.

所以我不能保证静默通知会到达,我不能连续发送静默通知。如果静默通知过期会怎样?

我可以在后台使用套接字 io 为每个客户端保持打开的连接。所以苹果再次将后台操作限制为时间有限。 iOS 我从后台状态杀死我的应用程序,当手机处于锁定状态时我的打开连接丢失,即使客户端有事件的互联网连接,我也可以看到客户端处于离线状态。

如果我使用 voip 等特定后台模式的授权来确定用户有事件的互联网连接但应用程序被终止,则唤醒应用程序并向服务器发送响应。但随后苹果会拒绝我的应用程序。因为我不是 voip 应用程序。

我需要一个解决方案来向每个客户发送 ping 以确定他们是否仍在他们的范围内。如果由于丢失客户端互联网而没有得到响应,我将阻止 future 的比赛。

如果我成功完成此行为,当用户打开具有事件互联网连接的应用程序时,我可以从记录的信息中更新用户离线时的匹配项。就像您在 2 小时前与另一个用户进行了匹配,但由于您的 exitRegion 而错过了一些。

如果没有有效的互联网连接,我需要问每个客户是否在他们所在的地区?

谢谢,



Best Answer-推荐答案


查看 swift 的后台模式。具体来说,如果用户的位置更新,位置更新将唤醒您的应用程序。您可以找到更多信息 here

关于iOS11 - 无限期在后台运行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47126400/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap