iOS 实现远程推送通知国际化

本文介绍了如何在iOS应用中实现远程推送通知的国际化,使其跟随APP的语言设置而非系统语言。通过使用loc-key和loc-args字段配合Info.plist文件中的多语言资源,以及利用App Groups实现APP与Extension间的数据共享来动态获取并应用APP的当前语言。
摘要由CSDN通过智能技术生成

由于产品需求,在 APP 里增加了语言设置选项,即用户可以在不改变系统语言的情况下,只修改 APP 内的语言。可是如何让远程推送也跟随 APP 语言呢?

每个远程推送通知都包含一个 payloadpayload包含系统要显示给用户的信息,也包括你自定义的数据。有关 payload key 可以看看这里 https://www.zybuluo.com/evolxb/note/482251

看过上面这篇文章后,小伙伴应该知道了苹果其实提供了实现语言国际化的方案,即通过 loc-keyloc-args 这两个字段。其中 loc-key 是格式化前的内容,loc-args 里面放的是 loc-key 格式化过程中需要用到的参数。比如要向小明同学推送一条消息,内容是:

小明,你的包裹已出发!

小明的手机语言设置成了英文,收到这条推送后,需要显示为:

小明,your package has sent!

那么 loc-keyloc-args 这两个字段就应该这样写:

"loc-key": "%@,你的包裹已出发!",

"loc-args": ["小明"]

如果 app 的 Localizable.strings 文件中有这样的定义:

“%@,你的包裹已出发!”="%@,your package has sent!";

小明收到的推送就将显示为

“小明,your package has sent! ”。

看,就是这么简单!但这还不够,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值