Pushing Background Updates to Your App
"Deliver notifications that wake your app and update it in the background."
앱을 깨우고 백그라운드에서 업데이트하는 노티피케이션을 전달합니다.
Overview
앱의 서버 기반 컨텐트가 빈번하게 바뀌지 않거나 불규칙적인 주기로 바뀐다면, 새 컨탠트가 사용가능할 때 백그라운드 노티피케이션을 사용해서 앱에게 알려줄 수 있습니다. 백그라운드 노티피케이션은 알림, 소리 재생, 아이콘에 badge를 다는 것 모두 없는 원격 노티피케이션입니다. 이것은 백그라운드에서 앱을 깨우고 서버로부터 다운로드를 초기화하기 위한 시간을 주고 컨텐트를 업데이트할 시간을 줍니다.
Important
시스템은 노티피케이션을 낮은 우선순위로 처리합니다. 앱의 리프레시를 위해 노티키페이션을 사용할 수 있지만 시스템은 전달을 보장하지 않습니다. 더불어 시스템은 전체 수가 초가되면 백그라운드 노티피케이션 전달을 제한합니다. 시스템에 의해 허용되는 백그라운드 노티피케이션의 수는 현재 상태에 달라지지만 한 시간 안에 둘 혹은 셋 이상을 보내지 않아야 합니다.
Enable the Remote Notifications Capability
백그라운드 노티피케이션을 받으려면 앱에 원격 노티피케이션 백그라운드 모드를 추가해야 합니다. Signing & Capability 탭에서 백그라운드 모드 기능을 추가하고, 원격 노티피케이션 체크박스를 선택합니다(Figure 1).
Figure 1 Enabling the remote notifications background mode
watchOS의 경우 WatchKit
확장에 이 기능을 추가해야 합니다..
Create a Background Notification
백그라운드 노티피케이션을 보내려면 Listing 1에서 보이는 것처럼 컨텐트만 사용 가능한 키를 포함하는 aps 딕셔너리와 함께 원격 노티피케이션을 생성해야 합니다. 페이로드에 커스텀 키를 포함시킬 수 있지만 aps 딕셔너리는 사용자 상호작용을 발생시키는 키를 포함하지 않아야 합니다.
Listing 1 Sample payload for a background notification
{
"aps" : {
"content-available" : 1
},
"acme1" : "bar",
"acme2" : 42
}
추가적으로 노티피케이션의 POST
요청은 백그라운드의 값을 갖는 apns-push-type 헤더 필드를 포함해야 하고, 값이 5인 apns-priority 필드를 포함해야 합니다. APNs 서버는 애플 워치에 푸시 노티피케이션을 보낼 때 apns-push-type 필드를 요구하며, 모든 플랫폼에 이에 대한 내용을 권장합니다. 더 많은 정보는 Create and Send a POST Request to APNs를 보시기 바랍니다.
Create and Send a POST Request to APNs
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns#2947607
https://velog.io/@panther222128/Sending-Notification-Requests-to-APNs
Receive Background Notifications
기기가 백그라운드 노티피케이션을 받으면, 시스템은 노티피케이션의 전달을 갖고 있고 지연시킬 수 있습니다. 이는 아래의 사이드 이펙트를 가질 수 있습니다.
- 시스템이 새로운 백그라운드 노티피케이션을 받으면 기존 노티피케이션을 버리고 가장 최근의 노티피케이션을 갖고 있습니다.
- 앱이 강제 종료되거나 종료되면 시스템은 갖고 있었던 노티피케이션을 버립니다.
- 사용자가 앱을 launch하면 시스템은 즉시 갖고 잇었던 노티피케이션을 전달합니다.
백그라운드 노티피케이션을 전달하려면 시스템은 백그라운드에서 앱을 깨웁니다. iOS에서는 이후 앱 딜리게이트의 application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
메소드를 호출합니다. watchOS에서는 확장 딜리게이트의 didReceiveRemoteNotification(_:fetchCompletionHandler:)
메소드를 호출합니다. 앱은 작업 수행 및 제공된 컴플리션 핸들러 호출을 위한 시간으로 30초를 갖습니다. 더 많은 정보는 Handling Notifications and Notification-Related Actions를 보시기 바랍니다.
Handling Notifications and Notification-Related Actions
https://developer.apple.com/documentation/usernotifications/handling_notifications_and_notification-related_actions
https://velog.io/@panther222128/Handling-Notifications-and-Notification-Related-Actions
See Also
Server Tasks
Generating a Remote Notification
JSON 페이로드로 사용자의 기기에 노티피케이션을 전송합니다.
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification
https://velog.io/@panther222128/Generating-a-Remote-Notification
Sending Notification Requests to APNs
애플 푸시 노티피케이션 서비스(APNs)에 원격 노티피케이션 페이로드 및 기기 토큰 정보를 전송합니다.
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns
https://velog.io/@panther222128/Sending-Notification-Requests-to-APNs
Handling Notification Responses from APNs
APNs 서버가 반환한 상태 코드에 응답합니다.
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/handling_notification_responses_from_apns
https://velog.io/@panther222128/Handling-Notification-Responses-from-APNs
Author And Source
이 문제에 관하여(Pushing Background Updates to Your App), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@panther222128/Pushing-Background-Updates-to-Your-App저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)