使用FCM的本地化通知iOS 10

问题描述:

我们有一个使用pyfcm的通过thunder Firebase云消息传递(FCM)的通知的Django后端服务器。我刚刚更新到今天发布的版本1.3.0。我想使用loc-keyloc-args参数发送通知,以便用户在其手机上使用的语言显示该通知。通知到达设备,它会振动,并为新通知设定默认声音,但不会显示。除了声音和振动之外,它什么也不发生。使用FCM的本地化通知iOS 10

这是由发送到FCM端点服务器生成的有效载荷:

{ 
    "notification": { 
     "loc-args": ["Demo (@demo)"], 
     "loc-key": "notification-follow", 
     "sound": "Default" 
    }, 
    "priority": "high", 
    "to": "..." 
} 

在客户端,这是通过电话接受:

[ 
    AnyHashable("gcm.message_id"):0:1496257581534217 %f910cc44f910cc44, 
    AnyHashable("aps"):{ 
     category = profile; 
    sound = Default; 
    }, 
    AnyHashable("gcm.notification.alert"):{ 
     "title-loc-key":" notification-follow", 
     "title-loc-args":[ 
     "Demo (@demo)" 
     ] 
    } 
] 

有消息显示之前我需要做的任何事情?在没有loc-keyloc-args的情况下发送消息,但使用message-body发送消息会在设备上显示通知。也许有效载荷是错误的?它应该如何做我想做的事? 在这种情况下,密钥notification-follow以任何可用语言列出并翻译为Localizable.strings文件。

+0

我认为'loc- *'的东西必须进入'aps'字典,但为什么不fcm做到这一点? –

好的,问题解决了。这是pyFCM。我认为这是该库的错误,所以开发者伪装了它。但它工作正常,现在它不再工作了。诀窍是给body_loc_args一个数组,否则会给你一个InvalidParameters错误。