我可能在这里遗漏了一些明显的东西。
如何创建一个 CloudKit 通知,其中包含有关您收到通知的 CKRecord 的详细信息? (即不仅仅是通用的“已创建新项目!”,而是带有记录标题的通知,例如“吉尔和杰西卡的生日派对!”)
为每个新记录更改创建一个带有新 notification.alertBody 的新订阅的正确方法是吗?这没有任何意义。
这使得选项 queryNotification.recordID 可以从 CloudKit (或我的本地存储)中提取数据并以某种方式将其添加到通知中?添加或更改已通知通知的值的方法是什么?我缺少什么?
更新:根据埃德温的建议,这里有一个代码片段,但它不起作用。
let notification = CKNotificationInfo()
notification.alertBody = "Added: %@" as NSString
notification.alertLocalizationArgs = ["name"]
只需填写CKNotificationInfo对象的.alertLocalizationArgs即可
.alertLocalizationArgs 的文档说:
该属性的使用是可选的。该属性包含一个数组
NSString对象,每个对象对应记录的一个字段
触发了推送通知。这些名称用于检索
记录中的相应值。然后使用这些值
替换alertBody或中的任何替换变量
AlertLocalizationKey 字符串。值本身必须是 NSString,
NSNumber 或 NSDate 对象。不要用其他值指定键。
长度超过 100 个字符的字符串值可能是
添加到推送通知时会被截断。
如果您使用 %@ 作为替换变量,这些变量是
替换为按顺序遍历数组。如果您使用的变量
形式%n$@,其中n是整数,n表示索引(从
1) 数组中要使用的项目。因此,数组中的第一项
替换变量%1$@,第二项替换变量
%2$@,等等。您可以使用索引替换变量来更改
结果字符串中项目的顺序,这可能是必要的
当您本地化应用程序的消息时。
以下是我如何使用它的 2 个示例:
notificationInfo.alertBody = "%1$@ : %2$@"
notificationInfo.alertLocalizationArgs = ["FromName", "Text"]
第二个样本:
notificationInfo.alertLocalizationKey = "News: %1$@"
notificationInfo.alertLocalizationArgs = ["Subject"]
Localized.strings 文件中的键为“News: %1$@”
更新:看起来您现在需要使用 .alertLocalizationKey。所以第一个样本不再起作用了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)