image.png
當有content-available字段的時候,就可以在后臺做一些事情。
在appdelegate里面會執行
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
在這個方法里可以拿到后臺推給你的json數據,解析數據執行你想要的操作
??:
{
"aps": {
"alert": {
"title": "aaa",
"body": "內容體"
},
"badge": 6,
"sound": "default"
},
"paramData": {
"toUserNum": "toUserNum",
"type": "CLIENT_NEWS"
}
}
這種消息推過來,就不會執行上面的方法。。。親測。。。
如果你的app在后臺,但是想在收到推送以后執行一點代碼的話,可以試試
靜默推送
在不打擾用戶的情況下,推給app消息,讓app執行某一個操作
靜默推送的要求是
1.aps對應的value里面不能出現alert, sound, badge。但是可以自定義任何合法的參數字段例如
{"aps":{"content-available":1,"haha":"hhh"}}
在推出去以后,app會執行這個方法
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
打印結果
image.png
但是手機一直很安靜??,不會出現任何的推送提示,就是不會出現下面的這種樣子
IMG_40F2EDB84A78-1.jpeg
網上有些其他人寫的,好像有點過時了,踩了幾個坑。。。親測~ 親測~