ios - didReceiveIncomingPushWithPayload 应用程序被杀死时不工作

标签 ios iphone apple-push-notifications callkit

我在 didReceiveIncomingPushWithPayload 方法中遇到了一个问题,因为它不会在应用程序被终止/终止时触发。但是当应用程序在后台时工作完美。

经过调查,我发现有些人建议使用新版本,因为这个版本已经被弃用了

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {

DispatchQueue.main.async(执行: {() -> Void in 完成() }) }

效果很好,但此方法仅适用于 iOS 11+,因此不适用于 iOS 9。有什么建议吗?

最佳答案

我是这样理解的,它适用于 iOS 10 和 11。

 //available(iOS, introduced: 8.0, deprecated: 11.0)
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) {
    pushRegistry(registry, didReceiveIncomingPushWith: payload, for: type) {
        // no-op
    }
}

//available(iOS 11.0, *)
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {

    //your code
    completion()
}

希望对您有所帮助。

关于ios - didReceiveIncomingPushWithPayload 应用程序被杀死时不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52050820/

相关文章:

ios - 在 iOS 中找不到模块 'GoogleMobileAds'

ios - Cocos2d 菜单仅在屏幕的一部分上吃触摸

iphone - 大小与字体 :minFontSize:actualFontSize:forWidth:lineBreakMode: not returning proper CGSize

ios - 以编程方式在 Swift 中为 iOS 制作带有名称首字母的图像,例如 Gmail

ios - 响应用户点击通知 - 调出相关 View Controller

ios - didReceiveRemoteNotification : fetchCompletionHandler: open from icon vs push notification

iphone - 如何 build 建筑物(查看: top down) that looks like a "3d" building with cocos2d and cocos3d?(适用于iphone)

iphone - Objective-C/iPhone 内存管理静态变量

iphone - Assets 目录 ImageSet - 编辑 Contents.json

删除 iPhone 后 iOS 推送 token 仍然有效