我只想知道如何在silent推送中确定要执行的操作:

这是我发给客户的aps个:

"aps": {
    "content-available": 1
}

我现在的问题是,当我添加type: "Order_Update"以确定静默推送是为了订单更新显示alert 通知.

推荐答案

有几个 Select !让我们花些时间了解所有不同的有效载荷和它们的用法.


Simple Payload

通知中心显示:是

唤醒应用程序以执行后台任务:否

{
    "aps" : {
        "alert" : "You received simple notification!",
        "badge" : 1,
        "sound" : "default"
    }
}

Payload With Custom Notification Sound

通知中心显示:是

唤醒应用程序以执行后台任务:否

Step 1:在应用程序包中添加自定义通知声音文件(.wav或.aiff扩展名.例如notification.wav).

Step 2:如下所示配置有效负载,以播放自定义声音

{
    "aps" : {
        "alert" : "It's a custom notification sound!",
        "badge" : 1,
        "sound" : "notification.wav"
    }
}

Notification With Custom Payload

通知中心显示:是

唤醒应用程序以执行后台任务:否

{
    "aps" : {
        "alert" : "It's a notification with custom payload!",
        "badge" : 1,
        "content-available" : 0         
    },
    "data" :{
        "title" : "Game Request",
        "body" : "Bob wants to play poker",
        "action-loc-key" : "PLAY"
    },

}

在这里,data字典包含你想要的任何自定义信息.它还将显示为正常通知,并显示警告消息"这是一个具有自定义负载的通知!".


Normal Silent Notification

它不会将alert 显示为通知栏;它只会通知你的应用程序有一些新数据可用,提示应用程序获取新内容.

在通知中心显示:否

唤醒应用程序以执行后台任务:是

{
    "content-available" : 1
}

Silent Notification With Custom Payload

下面是显示通知alert 以及在后台唤醒应用程序以执行任务的魔法!(注意:仅当它在后台运行且未被用户明确终止时.)

通知中心显示:是

唤醒应用程序以执行后台任务:是

{
    "aps" : {
        "alert" : "Notification with custom payload!",
        "badge" : 1,
        "content-available" : 1
    },
     "data" :{
        "title" : "Game Request",
        "body" : "Bob wants to play poker",
        "action-loc-key" : "PLAY"
     }
}

根据你的应用需求使用这些有效载荷中的任何一个.background app refresh参见Apple's documentation.我希望这能给你提供所有必要的信息.快乐编码:)

Swift相关问答推荐

绑定到可选值的非可选属性?'

格式化单位和度量值.为什么从符号初始化的单位不能产生与静态初始化相同的结果

字典下标或运算符,如果密钥不存在,则添加指定的默认&值是SWIFT?

UICollectionViewCompostionalLayout Collectionview单元格宽度在重新加载数据后未正确调整大小

ForEach within List:模式的好处?

Swiftui 按钮依次显示一组图像

在 SwiftUI 中操作绑定变量

如何仅将 SwiftUI 不透明度应用于父视图?

如何使用 Date.ParseStrategy 在 Swift 5.6 中将字符串解析为日期?

在视图中设置所有变量

如何防止 UITableViewCell 移动(Swift 5)

Subclass.fetchRequest() Swift 3.0,扩展并没有真正帮助 100%?

在 Swift 中强制崩溃的最简单方法

Swift中switch 盒的详尽条件

快速在 LLDB 中使用 po

Swift中字节数组的NSData

来自 ObservableObject 的绑定值

如何停止 NSTimer.scheduledTimerWithTimeInterval

Swift 2.0 按属性对对象数组进行排序

Switch 语句中的字符串:String不符合协议IntervalType