我想通知用户是否有其他用户希望与他成为朋友。我目前可以想到的唯一方法是通过推送通知或收件人通知设备将使轮询服务器保持特定频率的新信息,否则设备将仅在启动时检查新信息。
推送通知方法发送请求时遇到一些问题
如果设备处于离线状态,则只会处理上一次通知
如果应用未运行,推送通知将在通知中发送,我不知道如何从那里向我的应用提取信息。
此外,如果设备继续轮询新信息,API调用的数量将非常高,这不符合成本效益,如果设备仅在启动启动时请求新信息,它将无法获得实时更新。
有没有什么方法可以在信息可用时立即向设备发送信息? 任何建议将不胜感激
答案 0 :(得分:2)
你看过Urban Airship吗?
即使您的应用处于离线状态,他们也可以设置好排队和接收推送通知的框架。您可以从应用程序本身或托管帐户数据的服务器对通知进行排队。他们还能够撰写和推送丰富的内容通知。
小型应用的基本帐户每月可获得100万次免费推送通知。除此之外的一切都只是一分钱的一小部分。
希望这有帮助,干杯!
答案 1 :(得分:2)
通知是一种如果采用轮询路线可以耗尽电池的事情,这就是Apple开发推送通知的原因之一。我建议尝试尽可能多地使用Apple Push通知,因为它会被优化为地狱。如果您有应用程序处于活动状态时的不同流量&当应用程序未处于活动状态时(注册通知),您可以这样做 -
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if(application.applicationState == UIApplicationStateActive) {
// app active.
}
else {
// app not active
}
}
但是,如果在任何情况下苹果科技都不能满足需求,那么可以随时使用第三方服务。在这种情况下,有一些可以真正帮助你。
Pusher有一个Objective-C library和一个REST API(以及一个number of libraries),可以让您将服务器的实时更新推送到iOS应用程序中。
OpenPush是另一种此类服务。另请查看此链接,这是一个已编译的list of realtime technologies,我相信您也会找到符合您要求的技术。
所有这些都比投票更好。
答案 2 :(得分:1)
一旦有可用信息,我有什么办法可以将信息发送到设备吗?任何建议将不胜感激
user1想要将user2添加为好友。
从设备,发布信息到服务器,在您的webscript中,处理user1的朋友请求到user2(插入/更新信息到数据库等),完成后。将通知发送给user2。如果设备处于脱机状态,则此功能将起作用,如果应用程序正在运行,则user2将进行实时更新。您可以运行将检查新通知的预定请求。每2分钟说一次,你的应用程序中运行一个方法。但那不是一个好主意。应用程序内部的重新加载按钮可以更好地检查通知。
答案 3 :(得分:1)
您通常会使用推送请求作为通知您的应用有新数据可用的方法。用户点击推送通知 - 使用
打开应用-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
你注册有推送,查询你的服务器和服务器让你的应用知道这个新朋友请求列表在那里。 你不能真正在设备上排队 - 而你不需要。在应用程序查询之前,将信息存储在您的服务器上要容易得多。