Von Apple Docs:
In iOS 8 and later, voice-over-IP (VoIP) apps register for registerForRemoteNotifications remote notifications instead of using this method. Using remote notifications eliminates the need for a timeout handler to check in with the VoIP service. Instead, when a calls arrives for the user, the VoIP service sends a VoIP remote notification to the user’s device. Upon receiving this notification, the device launches or wakes the app as needed so that it can handle the incoming call.
In der Vergangenheit verwendeter setKeepAliveTimeout Aufruf einem Handler zu ermöglichen, eine der Endzeit genannt zu werden und ein Maximum von 10 Sekunden haben würde zu verlassen oder seine Zum Beenden müssen auch Aufrufe an den Handler nicht innerhalb des Zeitlimitwerts liegen.
Die neue (registerForRemoteNotifications) wäre in Ordnung, da der Handler intern ist (zu IOS) und würde Ihre App rufen, wenn ein Remote-Ereignis auftritt (das würde sogar Ihre App wecken, wenn sie im Schlaf ist).
In beiden Fällen sollten beide dasselbe tun, die ältere Version würde mit dem Code umgehen, und die neue, Sie würden eine Benachrichtigung erhalten (auch mit ihr umgehen), aber Sie werden das Timeout nicht mehr kontrollieren.
von Apple docs:
Call this method to initiate the registration process with Apple Push Notification service. If registration succeeds, the app calls your app delegate object’s application:didRegisterForRemoteNotificationsWithDeviceToken: method and passes it a device token. You should pass this token along to the server you use to generate remote notifications for the device. If registration fails, the app calls its app delegate’s application:didFailToRegisterForRemoteNotificationsWithError: method instead.
Wenn Sie Ihre App Remote-Benachrichtigungen wollen Warnungen angezeigt werden, spielen Töne oder führen andere Benutzer gerichtete Aktionen, müssen Sie die registerUserNotificationSettings nennen: Verfahren die Arten von Benachrichtigungen zu beantragen Sie möchten verwenden. Wenn Sie diese Methode nicht aufrufen, übermittelt das System automatisch alle Remote-Benachrichtigungen an Ihre App. Da der Registrierungsprozess die bevorzugten Benachrichtigungseinstellungen des Benutzers berücksichtigt, garantiert die Anforderung des Zugriffs auf Benachrichtigungstypen für Benutzer auch nicht, dass diese gewährt werden. Verwenden Sie die currentUserNotificationSettings-Methode, um herauszufinden, welche Benachrichtigungseinstellungen verfügbar sind.
und schließlich (für Un-Registrierung):
You should call this method in rare circumstances only, such as when a new version of the app removes support for all types of remote notifications. Users can temporarily prevent apps from receiving remote notifications through the Notifications section of the Settings app. Apps unregistered through this method can always re-register.
nicht sicher, aber ich hoffe, das hilft.
Grüße,
Heider Sati
Ich habe das gleiche Problem. Meine VoIP-App aktualisiert die Registrierung beim KeepAlive-Timeout. Es soll in einer lan-Umgebung funktionieren, auch ohne Internetverbindung, was keine Remote-Benachrichtigungen bedeutet. Meine App funktioniert gerade mit dieser veralteten API, aber ich bin mir nicht sicher, wie lange dies dauern wird. – Phani2013