수색…


소개

리치 알림을 사용하면 로컬 및 원격 알림이 사용자의 장치에 표시 될 때 모양을 사용자 지정할 수 있습니다. 대부분의 알림에는 UNNotificationServiceExtension 및 UNNotificationContentExtension이 포함됩니다. 즉, 일반 알림을 확장 된 방식으로 표시합니다.

간단한 UNNotificationContentExtension 만들기

1 단계

알림 환경에 적합한 환경 만들기. 백그라운드 모드푸시 알림 을 활성화했는지 확인하십시오. 배경 모드 활성화

푸시 알림 사용

2 단계 : UNNotificationContentExtension 만들기

아래쪽의 + 아이콘을 클릭하여 대상 템플릿을 만들고 알림 내용 확장 -> 다음 -> 내용 확장 이름 만들기 -> 완료 UNNotificationContentExtension 만들기

3 단계 : 생성 된 확장 프로그램의 info.plist 파일 구성

여기에 이미지 설명을 입력하십시오.

NSExtension의 사전은 알림 내용이 표시되는 방법을 나타내며, 수신 된 알림을 길게 누르면 수행됩니다

  • UNNotificationExtensionOverridesDefaultTitle : 기본적으로 알림의 맞춤 제목을 제공 할 수 있습니다. 응용 프로그램의 이름이 표시됩니다. self.title = myTitle
  • UNNotificationDefaultContentHidden :이 부울 값은 알림의 기본 본문을 숨길 지 여부를 결정합니다.
  • UNNotificationCategory : 응용 프로그램의 UNUserNotificationCenter 에 범주가 만들어 UNUserNotificationCenter . 여기에는 문자열 또는 문자열 배열이있을 수 있으므로 각 카테고리는 서로 다른 UI를 만들 수있는 여러 유형의 데이터를 제공 할 수 있습니다. 이 특정 확장을 표시하기 위해 보낸 페이로드에는 카테고리 이름이 포함되어야합니다.
  • UNNotificationExtensionInitialContentSizeRatio : 초기 컨텐트의 크기, 즉 처음 ContentExtension을 장치의 너비에 대한 초기 크기로 표시 할 때의 크기입니다. 여기에서 1은 높이가 너비와 같음을 나타냅니다.

4 단계 : 응용 프로그램에서 UNNotificationActionUNNotificationCategory 만들기

앱의 AppDelegate.swift didFinishLaunchingWithOptions 함수에서

    let userNotificationAction:UNNotificationAction = UNNotificationAction.init(identifier: "ID1", title: "வணக்கம்", options: .destructive)
    let userNotificationAction2:UNNotificationAction = UNNotificationAction.init(identifier: "ID2", title: "Success", options: .destructive)
    
    let notifCategory:UNNotificationCategory = UNNotificationCategory.init(identifier: "CATID1", actions: [userNotificationAction,userNotificationAction2], intentIdentifiers: ["ID1","ID2"] , options:.customDismissAction)
    
    UNUserNotificationCenter.current().delegate = self
    UNUserNotificationCenter.current().setNotificationCategories([notifCategory])
    UIApplication.shared.registerForRemoteNotifications()

우리는 식별자 ID1ID2 가진 두 개의 UNNotificationAction 을 만들고 식별자 CATID1 (ContentExtension의 info.plist 파일의 categoryID는 동일하며 페이로드와 plist 파일에서 여기에서 작성한 것과 동일해야 함)를 사용하여 UNNotificationCategory 에 이러한 작업을 추가했습니다. 카테고리를 애플리케이션의 UNUserNotificationCenter 하고 다음 줄에 장치 토큰을받는 didRegisterForRemoteNotificationsWithDeviceToken 함수를 호출하는 알림을 등록합니다

참고 : 귀하의 AppDelegate.swift에서 import UserNotificationsimport UserNotifications 를 추가하는 것을 UNUserNotificationCenterDelegate

5 단계 : NotificationContent의 샘플 페이로드

 'aps': {
    'badge': 0,
    'alert': {
        'title': "Rich Notification",
        'body': "Body of RICH NOTIFICATION",
        },
    'sound' : "default",
    'category': "CATID1",
    'mutable-content':"1",
    },
'attachment': "2"

6 단계 : ContentExtension 구성

통지 조치가 수행되는 동안 카테고리에 해당하는 조치가 자동으로 표시됩니다. 그 코드가 어떻게 수행되는지 코드를 볼 수있게 해줍니다.

import UIKit
import UserNotifications
import UserNotificationsUI

class NotificationViewController: UIViewController, UNNotificationContentExtension {

@IBOutlet var imageView: UIImageView?
override func viewDidLoad() {
    super.viewDidLoad()
}

func didReceive(_ notification: UNNotification) {
     self.title = "Koushik"
    imageView?.backgroundColor = UIColor.clear
    imageView?.image = #imageLiteral(resourceName: "welcome.jpeg")
}

func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
    
    self.title = "Koushik"
    imageView?.image = UIImage.init(named: "Success.jpeg")
    
    if(response.actionIdentifier == "ID1")
    {
       imageView?.image = UIImage.init(named: "Success.jpeg")
    }
    else
    {
        imageView?.image = UIImage.init(named: "welcome.jpeg")
    }
    
    }
}

7 단계 : 결과

알림을 수신하고 길게 누르기 / 클릭하면 알림이 다음과 같이 보입니다. 여기에 이미지 설명을 입력하십시오.

self.title = "Koushik"UNNotificationExtensionOverrideDefaultTitle 을 YES로 지정했기 때문에 제목은 "Koushik"입니다. 3 단계에서 UNNotificationExtensionDefaultContentHidden 을 YES로 지정하면 알림이 이미지 3과 4처럼 보입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow