5

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

4

4 回答 4

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。

于 2012-05-02T22:01:13.227 回答
2

马特乌斯,

tl;博士:是的,你可以。

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

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

于 2012-05-03T01:12:13.173 回答
2

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

于 2012-05-02T22:01:17.050 回答
1

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

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

于 2012-10-03T20:28:21.593 回答