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

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容