iOS10 새 프레임워크 푸시 UserNotifications

2703 단어
iOS10은 UserNotifications와 UserNotificationsUI 두 개의 새로운 푸시 프레임워크를 추가했습니다. 이것은 개발자에게 더 많은 조작 공간을 제공하는 기쁜 변화입니다.여기는 푸시 서버가 없습니다. 우선 로컬 푸시를 예로 들겠습니다. 우선 푸시 트리거 시간을 설정하고 여기는 1초 후에 트리거합니다.
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 1, repeats: false)

푸시 내용 설정, iOS10에서 푸시 내용 설정 외에 제목과 부제목 설정 등
let content = UNMutableNotificationContent()
content.title = "Welcome"
content.body = "Welcome to my test"

원격 푸시라면 서버가 아래 형식의 데이터를 되돌려야 합니다

{
  "aps" :
   {
   "alert" : {
   "title" : "Introduction to Notifications",
   "subtitle" : "Session 707",
   "body" : "Woah! These new notifications look amazing! Don’t you agree?"
  },
"badge" : 1},
}

알림 요청 보내기
let request = UNNotificationRequest.init(identifier: "test", content: content, trigger: trigger)

마지막으로 알림 센터에 요청 추가
let center = UNUserNotificationCenter.current()
center.delegate = self
center.add(request, withCompletionHandler:nil)
center.requestAuthorization([.alert, .sound]){(granted, error) in}

알림을 받으면 UNUserNotificationCenterDelegate의 리셋 방법을 호출합니다. 여기서 APP를 처리합니다.
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void) {
        completionHandler([.alert, .sound])
 }

UserNotifications 프레임워크에 action 기능도 추가되어 사용자가 앱을 열지 않은 상황에서 메시지를 처리할 수 있다. 예를 들어 채팅 앱에서 친구의 메시지를 받으면 앱 밖에서 바로 답장을 할 수 있다.action 만들기
let action = UNNotificationAction(identifier: "reply", title: "Reply", options: [])

category 귀속action 만들기
let category = UNNotificationCategory(identifier: "message", actions: [action], minimalActions: [action], intentIdentifiers: [], options: [])

콘텐츠의categoryIdentifier 속성을 설정하고 위category의identifier와 일치합니다
content.categoryIdentifier = "message"

마지막으로 카테고리를 알림 센터로 설정
center.setNotificationCategories([category])

알림을 받은 후 위에 설정된 Reply 버튼을 클릭하면 UNUserNotificationCenterDelegate 메서드가 호출됩니다.
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: () -> Void) {
        completionHandler(print("received"))
   }

위에서 소개한 것은 모두 새로운 푸시 프레임워크의 가장 기본적인 용법입니다. User Notifications UI 프레임워크를 이용하여 UI 맞춤형, 푸시 이미지 등 더욱 멋진 조작을 할 수 있습니다.

좋은 웹페이지 즐겨찾기