iOS10 새 프레임워크 푸시 UserNotifications
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 맞춤형, 푸시 이미지 등 더욱 멋진 조작을 할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.