Я просмотрел все вопросы по этому поводу, но ответы на них уже были применены к моему проекту, но метод делегата pushRegistry () не вызывается.
Сначала вот код:
import UIKit
import PushKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, PKPushRegistryDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
print("App Launched");
self.registerVoIPPush();
return true
}
func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) {
print("didUpdate");
print(pushCredentials);
print(type);
if type == PKPushType.voIP {
let tokenData = pushCredentials.token
let voipPushToken = String(data: tokenData, encoding: .utf8)
print(voipPushToken);
//send token to server
}
}
func registerVoIPPush() {
print("registerVoIPPush");
let voipPushResgistry = PKPushRegistry(queue: DispatchQueue.main)
voipPushResgistry.delegate = self
voipPushResgistry.desiredPushTypes = [PKPushType.voIP]
}
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType) {
print(payload);
ATCallManager.shared.incommingCall(from: "jane@example.com", delay: 0)
}
}
Я также включил следующие возможности приложения: - Pu sh Уведомления - Фоновые режимы - Фоновая выборка - Удаленные уведомления - Voice Over IP
Я использую Xcode11.3
& сборка с использованием iOS13.2
На портале инициализации Pu sh Включены уведомления для идентификатора приложения. (Сертификат VoIP Pu sh был сгенерирован и импортирован в доступ к цепочке для ключей, но, очевидно, пока не может использовать его для отправки нажатий).
Любая помощь будет высоко оценена, так как я пытаюсь чтобы сделать это с последних 3 дней.