如何本地化 Parse 推送通知?

How to localize Parse push notifications?

看起来 Apple 已经内置了通过在 aps 负载中包含 loc-key 来本地化 PUSH 通知的功能。但是,我不相信 Parse 的 iOS SDK 允许您使用 sendPushInBackground 自行设置该密钥。有什么方法可以在不先路由到我自己的服务器的情况下使用 Parse 本地化 PUSH?

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

对于以后发现这个的人,我的看起来像这样:

NSDictionary *data = [NSDictionary dictionaryWithObjectsAndKeys:
                      @{@"loc-key":@"NEW_MESSAGE_PUSH", @"loc-args":@[sender.name]}, @"alert",
                      @"default", @"sound",
                      @"Increment", @"badge",
                      sender.pid, @"senderID",
                      nil];
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(基础)中添加:

"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];