是否可以向特定设备发送iOS推送通知?我已经构建了一个论坛类型的应用程序,用户可以创建一个问题,其他人可以回答它。我需要向特定用户发送iOS推送通知,该用户询问问题,通知他们问题已得到解答。这可以通过PHP或其他方法完成吗?
答案 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或易于使用的管理面板向特定用户或用户组发送通知和提醒。 只需下载它,将一些代码从它移动到您的应用程序 - 并享受它。