跟踪自上次尝试______以来的时间

Posted

技术标签:

【中文标题】跟踪自上次尝试______以来的时间【英文标题】:Keep track of time since last attempt of ______ 【发布时间】:2013-02-15 04:18:27 【问题描述】:

我有一个游戏,用户可以每小时进行一次特定活动。如果他们不只是在设置中更改设备的当前时间,我如何确保距离他们上次尝试某事已经过去了一个小时?

另外,如果我想阻止用户只是删除应用程序并重新安装它,以便他们可以不断尝试而不必等待整整一个小时,有没有什么方法可以在应用程序之后将数据存储在设备上删除还是必须是服务器的东西?

如果我没有服务器,谁能想到一个聪明的方法来通过免费的应用内购买或其他方式做到这一点?

【问题讨论】:

你可以在 iCloud 中存储一些东西 @dthien iCloud 是一项同步服务。如果您从设备上删除应用程序,则会删除该应用程序的关联数据。删除将同步到 iCloud,这也会删除数据。 作弊者总会作弊。如果它只是一个游戏,我不会为此睡太多觉。 我只是想在这里添加我自己的问题:您实施这个“每小时一次”限制是因为它使游戏更好,还是因为其他游戏也这样做? 嗯,我不玩其他游戏,所以我不知道是否其他游戏会这样做。我这样做是作为一种商业策略,而不是为了让游戏更具吸引力……我想刺激口碑,尽可能多地吸引用户是最好的方法。老实说,这实际上不是游戏,我只是认为这会是最好的例子。 【参考方案1】:

以survives app reinstalls 的方式保存数据的唯一方法是将其保存到keychain。这行得通,因为钥匙串数据可能是shared across multiple applications;卸载时删除应用程序的其余数据。

如果您需要一种可靠的方式来告知当前时间,则设备必须连接到互联网。在这种情况下,您可以通过NTP 使用其中一种时间服务来检查当前时间。

【讨论】:

后续问题:你知道Keychain允许存储多少数据吗? @AlbertRenshaw 我能找到的最接近答案的是this,但我强烈怀疑它与操作系统有关。不过,单次约会就足够了。【参考方案2】:

这听起来正是您需要服务器来完成的任务。

当用户想要执行此受限操作时,让他们向服务器请求许可。您可以记录用户的 ID 和请求时间,决定他们是否可以执行操作,然后返回一个小的成功/失败消息。在他们更改时钟时有效,在他们从其他设备登录时有效,在他们擦除设备数据时有效。

【讨论】:

以上是关于跟踪自上次尝试______以来的时间的主要内容,如果未能解决你的问题,请参考以下文章

尝试运行基于 Maven 的简单 Spring Boot 项目时出错

FEventType.ChildAdded 事件仅触发一次

Google Analytics 跨域跟踪和 _setDomainName()

为 AdWords 来电跟踪转化设置 _googWcmGet

在尝试列出腌制数据时,我只获取上次存储的数据,如何显示所有腌制数据?

小部件移动上的运行方法