Junior — Middle
Ի՞նչ փոփոխություններ պետք է կատարվեն համակարգի կոդում, որպեսզի աջակցեն push-հաղորդագրությունների մշակմանը:
sobes.tech AI
Պատասխան AI-ից
Для падтрымкі апрацоўкі push-уведамленняў у iOS прыкладанні неабходна ўнесці наступныя змены:
- Рэгістрацыя на атрыманне push-уведамленняў
У AppDelegate дадаць запыт дазволу ў карыстальніка:
import UserNotifications
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if granted {
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
- Апрацоўка рэгістрацыі прылады
Рэалізаваць метады дэлегата для атрымання device token:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// Адправіць deviceToken на сервер
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("Не ўдалося зарэгістравацца: \(error)")
}
- Апрацоўка ўваходных паведамленняў
Рэалізаваць метады для апрацоўкі паведамленняў, калі прыкладанне ў фонавым рэжыме і ў актыўным стане:
import UserNotifications
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
// Апрацоўка паведамлення пры актыўным прыкладанні
completionHandler([.alert, .sound])
}
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
// Апрацоўка націску на паведамленне
completionHandler()
}
}
- Настройка capabilities
У Xcode уключыць Push Notifications у раздзеле Signing & Capabilities.
Такім чынам, прыкладанне зможа атрымліваць і апрацоўваць push-уведамленні ад сервера.