如何本地化Parse推送通知?

时间:2015-10-14 19:23:10

标签: parse-platform localization push-notification apple-push-notifications

看起来Apple已经具有通过在aps有效负载中包含loc-key来本地化PUSH通知的内置功能。但是,我不相信Parse的iOS SDK允许您使用sendPushInBackground自己设置该密钥。有没有办法使用Parse本地化PUSH而不首先路由到我自己的服务器?

2 个答案:

答案 0 :(得分:2)

PFQuery *pushQuery = [PFInstallation query];
[pushQuery whereKey:@"user" equalTo:author];
NSString *key = @"PUSH_LOC_KEY_SEND_TO_AUTHOR";
NSArray *args = @[name] 
 NSDictionary *data = @{
                        @"alert": @{@"loc-key": key,
                                       @"loc-args": args},
                           @"badge": @"Increment",
                           @"sound": @"default"
                           };
PFPush *push = [[PFPush alloc] init];
[push setQuery:pushQuery];
[push setData:data];

然后在Localizable.strings(Base)中添加:

"PUSH_LOC_KEY_SEND_TO_AUTHOR" = "%@ sent you a message";

在Localizable.strings(法语)中添加:

"PUSH_LOC_KEY_SEND_TO_AUTHOR" = "%@ vous envoyé un message";

请注意,在用户授权应用程序之后,您应该将当前用户对象添加到安装中,以便我们可以PFQuery他(如上所示):

PFInstallation *installation = [PFInstallation currentInstallation];
installation[@"user"] = [PFUser currentUser];
[installation saveEventually];

答案 1 :(得分:0)

与PFPush一起使用的数据字典中的警报键可以设置为字典而不是字符串。

对于将来发现这一点的人,我看起来像这样:

NSDictionary *data = [NSDictionary dictionaryWithObjectsAndKeys:
                      @{@"loc-key":@"NEW_MESSAGE_PUSH", @"loc-args":@[sender.name]}, @"alert",
                      @"default", @"sound",
                      @"Increment", @"badge",
                      sender.pid, @"senderID",
                      nil];