苹果远程推送,后台执行代码

2017-12-18  本文已影响117人  爆炸的白菜君
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

网上有些其他人写的,好像有点过时了,踩了几个坑。。。亲测~ 亲测~

上一篇下一篇

猜你喜欢

热点阅读