php - 如何国际化/本地化您的 FCM 推送通知,尤其是主题?

标签 php android ios firebase firebase-cloud-messaging

我想使用 Firebase 向本地化的 Android 和 iOS 设备发送推送通知。

我意识到我们并没有真正的解决方案来向订阅的主题发送本地化消息。
假装我有一条消息“朝鲜领导人威胁关岛”,我想发送给订阅“新闻”主题的人,并且订阅了 1000 人(他们都说不同的语言)。
我希望 Firebase 在请求 FCM token 时记录设备区域设置,并且我可以将每个区域设置的消息数组发送到该主题并让 FCM/firebase 处理,如下所示:

{
  "default_message": "North Korea leader threatens Guam",
  "en_US": "North Korea leader threatens Guam",
  "en_GB": "North Korea leader threatens Guam",
  "es_MX": "Líder de Corea del Norte amenaza a Guam",
  "fr_FR": "Le chef de la Corée du Nord menace Guam",
  "de_DE": "Nordkorea-Führer droht Guam"
}

我已经看到一些关于可能使用 title_loc_key、body_loc_key 的引用,但没有看到关于请求外观的好例子。这 2 个参数也暗示它们可能只是用作应用程序还必须在本地存储和查找的翻译查找键,并且我无法向人们发送全新的现成本地化消息(因为翻译会像'april_newsletter_text'一样预先存储在应用程序中)?
不知道它是如何工作的,只是在那里抛出一些想法。

注意:我正在使用 php 库来发送 firebase 推送通知(Laravel-FCM)。我相信我们团队中的一些开发人员也扩展了该库以执行一些自定义任务,因此如果有办法直接通过 GCM (gcm-http.googleapis.com/gcm/) 而不是 FCM 来完成,那么我可以添加。

最佳答案

您可以使用“条件”组合主题(参见 docs)。这些允许您将通知发送到主题组合,例如。

const message = {
    notification: {
        title: 'North Korea leader threatens Guam',
        body: '...'
    },
    condition: `'KoreaNews' in topics && 'LangEnGB' in topics`
};

const messageFr = {
    notification: {
        title: 'Le chef de la Corée du Nord menace Guam',
        body: '...'
    },
    condition: `'KoreaNews' in topics && 'LangFrFR' in topics`
};

关于php - 如何国际化/本地化您的 FCM 推送通知,尤其是主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45617648/

相关文章:

android - Sqldelight 1.4 如何在没有主键(id)的情况下插入填充数据生成对象

java - HttpGet 与请求正文 android

ios - UIAlertViewDelegate 方法 clickedButtonAtIndex 在实现我自己的委托(delegate)时没有被调用

php - 显示级联下拉列表

php - 供应商更新破坏了 FOS 用户包 "Call to a member function has() on a non-object"

php - 按最新评论排序 Wordpress 帖子

android - 如何修复 mac 版本的 android eclips 'Error retrieving parent for item: No resource found that matches the given name ' Theme.AppCompat.Light'?

ios - 如何在 iOS 上以 ProRes 编解码器录制视频?

iOS MVVM : Is Delegation Pattern a Requirement?

PHP:函数中的 $_GET 和 $_POST?