我有一个后端服务器,将云消息推送到iOS和Android设备.在消息中,body_loc_key属性设置为someone_commented_moment,并body_loc_args包含三个字符串参数.Firebase文档说明body_loc_key:
在Android上,填充此值时,请在应用程序的字符串资源中使用该键.
所以在Android上,我有一个包含这个条目的strings.xml:
<resources>
[...]
<string name="someone_commented_moment">
\@%1$s also commented on \@%2$s\'s moment: %3$s
</string>
[...]
</resources>
Run Code Online (Sandbox Code Playgroud)
无论如何,此字符串资源永远不会加载到设备上显示的通知中.
在iOS上,这可以完美地运行,并且我确实从通知中获取启动我的Activity的Intent中的通知有效负载,所以我认为这不是服务器端的错误.我在这里错过了什么吗?我是否必须手动执行某些操作才能使其工作,以使Firebase查找并使用该字符串资源进行通知正文的本地化?
编辑:触发通知的python代码如下所示:
self.fcm.notify_multiple_devices(registration_ids=push_tokens,
body_loc_args=notification.body_loc_args,
message_body=notification.type,
data_message=notification.data,
body_loc_key=notification.type,
sound="default")
Run Code Online (Sandbox Code Playgroud)
self.fcm类型对象在哪里pyfcm.FCMNotification,notification.type设置为"someone_commented_moment",由print语句以及发送到设备的内容确认.