【发布时间】:2020-06-15 09:57:25
【问题描述】:
在 Android 上,我可以发送一个静默推送,该推送会被传送到系统托盘。在 iOS 上,我不确定这是否可行。我从aps 中删除了alert 属性,并且我正在为sound 发送一个空字符串。我看到的是徽章计数静默更新(这很好),但通知中心没有任何内容。那么有没有办法在没有声音的情况下向 NC 发送推送?
请注意,我不希望推送在屏幕上弹出(即用户不应该看到它,除非他们在屏幕上向下滑动以显示已发送的内容。换句话说,我正在尝试匹配行为在 Android 上)。
【问题讨论】:
-
这应该可以工作 {"aps":{"alert":"Hello","badge":1,"category":"your_category_key"}}。基本上你不应该在有效载荷中有声音键。
-
如果我完全删除声音键,就没有声音了。这很好,但问题是屏幕上仍然会弹出通知。我希望通知直接发送到 NC。我如何做到这一点?
-
您可以在 AppDelegate 中注册通知时使用此代码,
let notificationCenter = UNUserNotificationCenter.current() notificationCenter.requestAuthorization( options:[.badge, .sound, .alert, .provisional]) { } -
.provisional 将确保通知被悄悄地传递给用户,并将被放置在通知中心。此功能称为临时授权,在 iOS 12 中引入。
-
@lloydTheCoder 您能否确认无法将某些通知设为临时通知而将其他通知设为非临时通知?在 Android 上,我可以使用不同的频道。我很惊讶 iOS 没有提供这个功能。
标签: ios push-notification nsnotificationcenter silentpush