用于本地化应用程序的Android GCM推送通知

Gan*_*esh 11 android push-notification android-c2dm google-cloud-messaging

我有一个Android应用程序,支持7个国家(本地化和国际化).应用程序功能和语言根据设备区域设置而更改.我需要为此应用程序实现GCM推送通知.需求:

  • 是否可以使用单个GCM帐户以7种不同语言发送推送通知.
  • 有没有办法以他们的设备本地语言显示推送通知.

Era*_*ran 11

您可以采用Ascorbin建议的方法,也可以实现类似Apple推送通知中的方法:

您的服务器可以发送带有参数的GCM消息,该参数是消息的关键.Yout Android App必须为每个可能的键包含应在7种语言中显示的字符串(使用strings.xml的多个副本).然后,应用程序中的GCM接收器将从服务器获取密钥并获取与其匹配的资源字符串(它将自动获取与设备的区域设置匹配的字符串).这样您就不必担心服务器中的本地化.这种方法的缺点是您的所有消息都必须在您的应用中预先定义.

您还可以像Apple一样为消息键添加参数.例如,服务器发送密钥="NEW_MAIL_FROM"和param1 ="John".应用程序找到该键的字符串资源(假设设备使用英语语言环境) - "您有来自{0}的消息" - 并用John替换该参数,显示消息"您有来自John的消息".具有不同语言环境的设备将以其他语言显示消息.

  • @Ascorbin限制为4k.它可能适用于少数语言,但它不能很好地扩展. (2认同)

asc*_*sco 1

当设备在您的服务器上注册时,让它们发送区域设置。因此,您可以拥有设备的区域设置组并以相应的语言发送消息。