我目前有一个运行线程(通过 NSTimer
)的 iOS 应用程序,该线程每 10 秒轮询 rails 服务器上的后端 ruby 以更新 UITableView
。这样做的原因是 tableview 应该在 iPad 上始终打开,以便它可以反射(reflect)服务器数据的变化。
我的问题是 - 有更好的方法吗?我可以使用 Apple 推送通知系统告诉我的应用程序从服务器更新它的数据而不向用户显示通知吗? (我过去曾使用 Android GCM 告诉应用程序更新而不显示通知,但我不确定 Apple 是否允许这样做)如果是这样,怎么做?
是否有另一种解决方案来通知我的 iOS 应用在服务器发生变化时更新数据?
最佳答案
从 iOS7 开始,您可以像 Android GCM 一样向您的应用程序发送静默的 oush 消息。您需要做的就是将以下键值对与您的负载一起发送:
aps = {
"content-available" = 1;
};
通过这样做,推送消息不会显示在横幅或警报中,您可以在应用委托(delegate)中收到消息时更新您的表格 View :
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
// update your application
}
关于ios - 让服务器后端告诉 iOS 应用程序更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609651/