如何解决使用 CKSubscription 发送通知时,我可以使用 CKRecord 的字段内容作为本地化键吗?
来自alertLocalizationKey - Apple Developer Documentation:
设置这个属性的值,让系统在收到相应的推送通知时显示一个本地化的字符串。系统使用该键在应用程序的 Localizable.string 文件中查找匹配的字符串。如果您为此属性指定值,CloudKit 将忽略 alertBody 属性的值。
假设我的 CKRecord
的字段之一是 documentType
,其内容是枚举,如 TEXT_FILE
、IMAGE_FILE
。
在我的 Localizable.strings
中有类似 "TEXT_FILE": "Plain Text";``"IMAGE_FILE": "图片";
的行。
所以 CloudKit 存储我的应用的本地化密钥而不是内容。
如果我将 alertLocalizationKey
设置为 %1$@
并将 alertLocalizationArgs
设置为 ["documentType"]
,我会收到诸如 TEXT_FILE
或 IMAGE_FILE
之类的通知,这绝对不是什么我想要。
在这种情况下如何本地化通知?我不想在 CKRecord 中存储本地化。
解决方法
经过反复试验,我选择在 CKRecord 中添加本地化标题字段。这是我的情况的最佳解决方案。但也许您可以使用 Notification Service Extension。
我以非常艰难的方式学到的一个简单提示:您可能需要重新启动 iPhone 以使扩展程序正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。