Apple推送通知:需要服务器端功能指南

时间:2014-02-18 05:10:29

标签: ios iphone database-design ios7 apple-push-notifications

我正在制作一个事件管理应用程序&已经

  • 准备好后端服务(例如:用户注册和事故单详细信息。)。
  • 我打算实施推送通知,以便任何 应将事件活动(如新的,更新的,已关闭的)发送给用户 作为通知。一旦用户点击事件通知,就会 根据事件iD获取相应的事件详细信息 传递了PushNotification的PayLoad。

我有设置推送通知的知识( ,因为我已经使用本地服务器完成了一些示例应用,在服务器代码中硬编码设备UUID ),但我仍然是觉得我需要专家建议以下疑点:

  • 我是否需要修改注册服务(目前仅使用用户ID /密码)来获取额外的设备(UUID)信息。
  • 我是否需要将deviceID的映射与已注册的用户ID存储在数据库中(在某些特定的pushNotification表中),以便在需要向该用户发送通知时使用此deivceID。
  • 假设有多个人因某些事件而被通知,服务器应如何向两个人发送通知,连续发送或某种广播
  • 如何在任何事件的每次更新时调用推送通知服务器。

如果专家认为这个问题更主观,那么关闭主题&不涉及任何编程结构,请对其进行评论。

3 个答案:

答案 0 :(得分:1)

是的,您需要在注册时进行一些修改。登录。在那里,您需要存储deviceToken以发送推送通知。您可以通过以下编码获取设备令牌..将其放入appDelegate

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 

    NSString *str = [NSString stringWithFormat:@"%@",deviceToken];
    NSString *newString = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
    newString = [newString stringByReplacingOccurrencesOfString:@"<" withString:@""];
    newString = [newString stringByReplacingOccurrencesOfString:@">" withString:@""];


    [[NSUserDefaults standardUserDefaults] setObject:newString forKey:@"deviceToken"];
}

您需要在服务器端创建一个页面,通知将发送到APNS服务器。您可以查看以下示例

Push Notification Tutorial Part 1

Push Notification Tutorial part 2

答案 1 :(得分:1)

  

我是否需要修改注册服务(目前仅限于此   userID / Password)获取额外设备(UUID)信息。

是,您无法在没有设备UUID的情况下发送推送通知

  

我是否需要使用注册的用户ID存储deviceID的映射   在数据库中(在某些特定的表中为pushNotification),以便   每当我需要向该用户发送通知时,请使用此deivceID。   假设有一些人被通知某些人   事件,服务器应该如何向两者发送通知   人,连续或广播如何调用我的推送   任何事件的每次更新都会通知服务器。

没有“广播”推送通知,当您想要向所有(或某些)设备发送推送通知时,您只需要浏览所有UUID,并将推送通知发送给每个设备。

如果您想要向特定用户发送推送通知,您需要知道用户的设备uuids,这意味着您需要一个表来映射用户的ID及其设备UUID。

  

如何在任何事件的每次更新时调用推送通知服务器。

这取决于您的服务器实施。我想你需要向服务器请求的处理程序注入一些代码(回调,拦截.etc)。

答案 2 :(得分:1)

我回答了你的问题:

  

我是否需要修改注册服务(目前仅使用用户ID /密码)来获取额外设备(UUID)信息。

您需要将设备令牌(必需),用户ID(选项),密码(选项)传递给服务器。在服务器端,你必须编写php / python脚本来获取这些参数并将它们存储在数据库中。

  

我是否需要将deviceID的映射与已注册的用户ID存储在数据库中(在某个特定的pushNotification表中),以便在需要向该用户发送通知时使用此deviceID。

如果您希望发送推送通知多于一个设备,则必须通过脚本语言在数据库中存储用户设备令牌,ID,密码。

  

假设有多个人因某些事件而被通知,服务器应如何向两个人发送通知,连续发送或某种广播

     

如何在任何事件的每次更新时调用推送通知服务器。

如果您必须发送多于一个人的通知,则必须编写SQL查询以获取您必须发送通知的人员的数据(设备令牌n id)。你必须打电话。