ios - 如何确保只有一个 iOS 应用程序实例在运行?

标签 ios apple-push-notifications

我有一个 iOS 应用程序,允许人们“领取积分”。我想防止有人在他们的手机上打开应用程序,在 iPad 上打开另一个实例,然后在两个地方提交 claim 的情况。

目前,应用程序在启动时“注册”为事件实例。如果第二个实例启动,它将取得控制权,并且第一个实例保存数据的任何尝试都会导致重定向,告诉用户不要打开两个应用程序。我见过一些游戏(例如 Clash)会在第二个应用程序打开时立即通知第一个应用程序的用户他们被踢了。

我可以想到两种方法来做到这一点:每隔几秒提交一次“心跳”,看看我们是否仍然是控制应用程序(浪费),并在新实例打开时向所有其他应用程序发出某种形式的通知。标准的 iOS 通知可以扮演这个角色,还是它们只是向用户弹出通知?

任何关于如何在打开一个不需要轮询的实例时向应用程序的所有其他实例发布通知的见解都将不胜感激!

最佳答案

您可以在服务器端解决此问题。 显然,用户必须登录,或者至少,您的应用程序必须使用服务器的唯一 ID 自动登录。 如果您有一个 API 来接收声明,您可以简单地检查此唯一 ID 是否已经存在相同的声明,并在出现这种情况时向第二台设备返回错误。

关于ios - 如何确保只有一个 iOS 应用程序实例在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143703/

相关文章:

objective-c - 铿锵警告 : Value stored to 'pool' during its initialization is never read

apple-push-notifications - APNS推送通知头疼;适用于开发但不适用于生产

ios - 如何在 iOS 9 中获取 iphone 设备 token

ios - 应用程序未运行时基于位置的推送通知?

iOS:UITableView 数据源必须从 tableView:cellForRowAtIndexPath 返回一个单元格:

ios - 如何使表格滚动工作 : UIControl within UITableView within UIControl

ios - 如何在单独的动画中将 CGAffineTransform 链接在一起?

ios - UIRemoteNotificationType 是 UIRemoteNotificationTypeNone 如果全部启用

java - 使用 notnoop 的 java-apns 库时导致此错误的原因是什么?

ios - 从父类(super class) UIView 连接的 IBoutlet 仍然为零