美文网首页
iOS APNs 实现多语言

iOS APNs 实现多语言

作者: 今年27 | 来源:发表于2019-02-12 16:06 被阅读23次

    一般服务器做apns推送的时候,常用的是

    {  
     "aps" : {  
        "alert" : "我是被推送的消息",
        "badge" : 1,
        "sound" : "default"
     }
    }
    

    这种格式, 没错最早我也是这样的写的, 但是后来的,设计到做多语言推送,所以就不能这么做了
    于是乎

    {  
     "aps" : {  
     "alert" : {
           "body" : "我是推送的消息",
           "action-loc-key" : "Play_MSG",
           "loc-key":"Borrow_MSG",
           "loc-args":["XYZ"]
         },
     "badge" : 1,
     "sound" : "default"
     }
    }
    

    解释:

    (1) loc-key: 在App端的Localizable.strings文件中定义好的多语言字段;
    (2) loc-args: 在App端的多语言字段中需要带的参数;
    "loc-args"字段也不是必须的,如果"loc-key"的多语言字段中不需要参数,则该字段可以省略。例如:"loc-key"中"Borrow_MSG"定义的多语言字段为 "%@ wants to borrow %@'s money"。那么"loc-args"的值就应该是 ["LiLei", "HanMeimei"]。最终App端显示的推送消息就是 “LiLei wants to borrow HanMeimei's money”。
    (3) action-loc-key: 同样在App端的Localizable.string文件中定义好的多语言字段,用来替代在锁屏页面View按钮
    "action-loc-key"字段不是必须的,是否定义的样式区别如下:“slide to view”中的"view"就是定义的多语言字段 "Play_MSG"。


    20170309135859813.png

    (4) body: 推送中显示的字段;(经测试,如果定义了loc-key,那么这个字段似乎没用)
    如果lock-key在Localizable.strings文件中找不到, 就会直接显示body中的内容,没错这就省去了我们做版本向前兼容的过程
    (5) launch-image: 应用在 bundle 里的一个图片文件的名称,一般来说我们不指定这一属性;
    具体可以参考https://blog.csdn.net/olivelao/article/details/60958526这篇博文写的不错

    相关文章

      网友评论

          本文标题:iOS APNs 实现多语言

          本文链接:https://www.haomeiwen.com/subject/oeskeqtx.html