1

我陷入了困境

情况:我有一种情况,我回答了一些问题并根据回答的问题获得积分。如果我的积分变为 10,我会使用 QRCode 赢得一些礼物。(用户会生成一个二维码,当从其他具有扫描仪应用程序或任何其他扫描仪的设备扫描二维码时,它会提供指向该在线商店的链接。可以从任何浏览器打开此链接。 )通过扫描 QRCode 可以从某个在线商店访问礼物,该 QRCode 提供了一个带有一些唯一 ID 的在线商店的链接,当礼物被访问/拿走时,服务器会收到通知,礼物是从该在线礼品商店访问/拿走的,并且QRCode 状态在服务器数据库上更新为无效。现在,一旦服务器收到礼物被访问/拿走的通知,服务器应该立即通知我的 iphone 应用程序收到了礼物,这样我就可以立即显示另一个祝贺图片或其他东西。

可能的解决方案:我想到了一种可能的解决方案,其中我每隔 60 秒检查一次服务器上的 qrcode 访问状态更改并相应地显示图像。我不知道这种方式有多有效/正确。

问题:但在我求助于上述解决方案之前,我想知道,如果我的应用程序没有尝试从服务器调用或获取更新,这个通知是否可以从服务器发生?我的意思是,我的应用程序只有在服务器以 msg 或一些 xml 或其他东西的形式发送通知后才会出现。

任何帮助将不胜感激。

4

4 回答 4

1

您可以尝试检查Push Notifications。但是在服务器端确定是否在客户端收到通知是不可能的(如果你不会自己实现它,但你可能不会涵盖所有可能的情况,比如当你的应用程序没有启动并且通知来了)。

于 2012-11-02T06:41:03.167 回答
1

您可以使用打开与服务器的连接CFReadStream,将流添加到运行循环并设置回调函数。每当服务器将数据写入打开的连接时,您的回调将触发,然后您可以从流中读取以获取服务器发送的数据

更多信息在这里:https ://developer.apple.com/library/mac/#documentation/Networking/Conceptual/CFNetwork/CFStreamTasks/CFStreamTasks.html

于 2012-11-02T06:52:51.057 回答
1

您可以尝试使用 XMPP 协议,该协议最常用于聊天/邮件,其中将服务器中的更改通知给客户端。

于 2012-11-08T05:02:47.813 回答
0

Apple Push Notification Service 旨在解决这些类型的情况。

希望它有所帮助:Apple Docs:http: //developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW9

有一个很好的教程:http ://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

视频教程:http ://www.youtube.com/watch?v=cKV5csbueHA&feature=relmfu

于 2012-11-02T07:42:19.843 回答