繁体   English   中英

iOS PushKit注册不适用于iOS10

[英]iOS PushKit registration not working on iOS10

我正在为iOS 10的VoIP应用程序实现PushKit

我已经在AppDelegate.swift文件中编写了以下代码:

import PushKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, PKPushRegistryDelegate {

var window: UIWindow?
private let _pushRegistry = PKPushRegistry(queue: DispatchQueue.main)

//MARK: - App Life Cycle -
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    //Register for local notifications
    NotificationController.registerNotifcationForApplication()

    //PushKit
    _pushRegistry.delegate = self
    var typeSet = Set<PKPushType>()
    typeSet.insert(.voIP)
    _pushRegistry.desiredPushTypes = typeSet

    window!.makeKeyAndVisible()
    return true
}

//MARK: - Delegates -
func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials,  forType type: PKPushType) {
    DDLogVerbose("PushKit Token: \(credentials.token) length: \(credentials.token.count)")
    print("pushRegistry didUpdate credentials")
}

func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenForType type: PKPushType) {
    DDLogVerbose("")
    print("pushRegistry didInvalidatePushTokenForType")
}

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) {
    DDLogVerbose("Payload: \(payload.dictionaryPayload)")
    print("pushRegistry didReceiveIncomingPushWith")
}

}

我启用了以下背景模式: 在此处输入图片说明

但是当我启动应用程序时, 没有任何代表被调用
在iOS 9上也无法使用。

我只是通过在以下功能中启用“ Push Notifications来解决此问题:

在此处输入图片说明

其实我也已经尝试过了,但是以前没有用。 现在,我启用了它,关闭了Xcode 8.2.1,重新打开,清理生成,它开始工作了!

感谢vin25的回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM