我是否需要将令牌发送到服务器

时间:2014-03-06 14:55:49

标签: ios

我正在我的应用中实施推送通知。 我已根据苹果指南创建了证书和配置文件。 我也能够获得令牌 didRegisterForRemoteNotificationsWithDeviceToken:方法

我正在使用PHP服务器生成PUSH通知。 现在我不清楚,我是否需要将apptoken发送回我的推送服务器。 以及如何将令牌发送到服务器。

谢谢,

3 个答案:

答案 0 :(得分:2)

是的,您应该实现服务器公开的Web服务,以允许客户端应用程序将其推送令牌发送到服务器。

如果没有令牌,您的服务器就不知道在哪里发送通知。

答案 1 :(得分:0)

您需要转换方法- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken中收到的令牌,如此

 NSString *tokenPush = [[[deviceToken description] stringByTrimmingCharactersInSet:
                        [NSCharacterSet characterSetWithCharactersInString:@"<>"]]
                       stringByReplacingOccurrencesOfString:@" " withString:@""];

然后将其发送到您的服务器以保留它。之后,当您需要向任何设备发送任何推送通知时,您将需要使用此tokenPush。

答案 2 :(得分:0)

获取令牌后嘿嘿必须通过Web服务将其发送到服务器。我已经使用ASHIHttp框架给出了一个websevices示例。如果必须向多个设备发送通知,请在数据库中保存此令牌。

- (void)savePlayerDataOnServer:(NSString *)facebookName {

appdelegate = [[UIApplication sharedApplication]delegate];

NSLog(@"Tokennn %@", [appdelegate string]);


NSURL *url = [NSURL URLWithString:kAPIHost@"yourscripturl"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
NSString *fbnameinside = [[NSString alloc] initWithFormat:@"%@",facebookName];

NSLog(@"globalmailID in savePlayerDataOnServer %@",globalmailID);


[request setPostValue:fbnameinside forKey:@"PlayerName"];
[request setPostValue:globalmailID forKey:@"PlayerEmail"];

[request setPostValue:[appdelegate string] forKey:@"DeviceToken"];

[request setDelegate:self];
[request startAsynchronous];
[request setCompletionBlock:^{
    NSString *responseString = [request responseString];
    NSLog(@"Response in savePlayerDataOnServer: %@", responseString);
}];
[request setFailedBlock:^{
    NSError *error = [request error];
    NSLog(@"Error in savePlayerDataOnServer: %@", error.localizedDescription);
}];

}