IOS推送通知给特定用户?

时间:2012-05-02 21:55:26

标签: php iphone ios apple-push-notifications

是否可以向特定设备发送iOS推送通知?我已经构建了一个论坛类型的应用程序,用户可以创建一个问题,其他人可以回答它。我需要向特定用户发送iOS推送通知,该用户询问问题,通知他们问题已得到解答。这可以通过PHP或其他方法完成吗?

4 个答案:

答案 0 :(得分:9)

是的,您绝对可以向特定设备发送推送通知。

首先,您需要让设备获得接收推送通知的权限:

[[UIApplication sharedApplication]
 registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                     UIRemoteNotificationTypeSound |
                                     UIRemoteNotificationTypeAlert)]; 

然后,如果用户接受,您将收到委托消息didRegisterForRemoteNotificationsWithDeviceToken。然后,您使用应用中的用户ID将该deviceToken传递到您的服务器,该用户ID用于标识论坛中的用户。像这样:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)_deviceToken {

    NSString* deviceToken = [[[[_deviceToken description]
                            stringByReplacingOccurrencesOfString: @"<" withString: @""] 
                            stringByReplacingOccurrencesOfString: @">" withString: @""] 
                            stringByReplacingOccurrencesOfString: @" " withString: @""];

   //send deviceToken and your userId to your server to associate the two together 
}

然后你需要建立你的推送服务器,它发送通知,我不会在这里进入,因为有大量的在线文档,它是相当复杂的。您也可以使用第三方服务,例如Urban Airship和StackMob。

答案 1 :(得分:2)

当您发送推送通知时,设备会获取一个唯一ID,您可以使用该ID发送给Apple,告诉他们将邮件发送给谁。 当您获得此唯一ID时,将其发送到您的服务器,当您这样做时,您可以包含任何其他数据,如用户名,refs等。
它更像是一个服务器端问题,而不是iOS问题。

答案 2 :(得分:2)

马特乌斯,

是的,你可以。

由于您的论坛应用程序是用PHP编写的,因此以下是一些可能对您有用的框架:

如果您最终使用Easy APNS: 您可以使用一组用户标识符向单个用户(如您的示例中)或一组用户(可能是“正在观看”该线程的所有人)发送消息。这里有很多例子:https://github.com/manifestinteractive/easyapns/blob/master/src/php/samples.php

答案 3 :(得分:1)

当然,有很多免费的推送通知服务器 - 例如QuickBlox 您不需要任何服务器代码,QuickBlox已经为您编写了所有代码。

只需查看Push Notifications iOS sample - 此示例使您可以随时通过API或易于使用的管理面板向特定用户或用户组发送通知和提醒。 只需下载它,将一些代码从它移动到您的应用程序 - 并享受它。