Я встроил VOIP-уведомление с помощью OneSignal в одно из моих приложений для iOS. В первые дни моего развития он работал нормально, но внезапно перестал работать. Я проверил код и не нашел изменений. Я также создал новый пример проекта для проверки проблемы, но не повезло. Я проверил приборную панель доставки сигнала, которая показала, что уведомления получены, но метод ( didReceiveIncomingPushWith ) никогда не вызывается. Пожалуйста, помогите мне с проблемой.
Шаг 1: Разрешение удаленного уведомления
if #available(iOS 10, *) {
UNUserNotificationCenter.current().requestAuthorization(options:
[.badge, .alert, .sound]){ granted, error in }
} else {
application.registerUserNotificationSettings(
UIUserNotificationSettings(types: [.badge, .sound, .alert],
categories: nil))
}application.registerForRemoteNotifications()
Шаг 2: Регистрация Pushkit
let pushRegistry = PKPushRegistry(queue: DispatchQueue.main)
pushRegistry.desiredPushTypes = [.voIP]
pushRegistry.delegate = self
Шаг 3: Методы делегирования
func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) {
let token = pushCredentials.token.map { String(format: "%02x", $0) }.joined()
print("VOIP : \(token)")
}
@available(iOS, introduced: 8.0, deprecated: 11.0)
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType) {
//self.handlePushPayload(payload)
}
@available(iOS 11.0, *)
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
//self.handlePushPayload(payload)
completion()
}