로컬 알림 구현 방법
로컬 알림
사과공식 문서 (일본어)에는 다음과 같은 내용이 적혀 있다.
로컬 알림과 원격 알림을 통칭하여 사용자 알림이라고 합니다...프론트에서 실행되지 않는 프로그램은 사용자에게 어떤 정보를 전달하는 데 사용됩니다.
로컬 알림이든 원격 알림이든 외관과 소리는 같다.이 알림은 경고 메시지나 응용 프로그램 아이콘의 휘장을 표시할 수 있습니다.
즉, 이것은 응용 프로그램을 사용하지 않은 사용자에게도 어떤 요구를 할 수 있는 기능이다.
사용자가 응용 프로그램을 사용하지 않았을 때 사용자에게 임의의 메시지를 보낼 수 있기 때문에 응용 프로그램의 보존율 개선, 활성 사용자 수 개선 등에 기여하는 기능이라고 할 수 있다.
완성
실시 중에 설치된 것은 여기다.
로컬 알림 표시 기준
로컬 알림을 출력할 수 있는 여러 조건이 있습니다.
실시 중에 설치된 것은 여기다.
로컬 알림 표시 기준
로컬 알림을 출력할 수 있는 여러 조건이 있습니다.
구현 방법
1. 사용자에게 알림 표시 라이센스 부여
먼저 사용자에게 알림을 표시하기 위해서는 로컬 알림이든 푸시 알림이든 사용자로부터 알림을 표시하는 허가를 받아야 한다.
새 프로그램을 설치할 때 보이는 대화상자가 있습니다. 바로 그
通知表示の許諾をユーザーから得る
대화상자입니다.대화 상자가 표시되면 APNs(Apple Push Notification Service) 터미널 정보가 등록됩니다.
언제든지 다음 코드를 실행하여 대화상자를 표시할 수 있습니다.
if #available(iOS 10.0, *) {
// iOS 10
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.badge, .sound, .alert], completionHandler: { (granted, error) in
if error != nil {
return
}
if granted {
print("通知許可")
let center = UNUserNotificationCenter.current()
center.delegate = self
} else {
print("通知拒否")
}
})
} else {
// iOS 9以下
let settings = UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil)
UIApplication.shared.registerUserNotificationSettings(settings)
}
또한 개인적인 의견이지만 응용 프로그램이 처음 시작될 때(예: (_application:didFinishLaunchingWithOptions:)
이 알림 허가 대화상자를 표시하면 알림의 허가율이 낮아질 수 있습니다.최근 알림을 표시하는 응용 프로그램이 많아지고 알림을 거부하는 사용자도 증가하고 있기 때문에 사용자가 왜 알림을 받아야 하는지 명확하지 않기 때문에 먼저 알림을 닫는 경향이 있다.
이런 상황을 피하기 위해 대화상자를 표시할 때 추천하는 시기는
1과 2는 응용 프로그램에 대한 관심이 높아지는 시기이다. 3은 원래 사용자에게 알림을 명시한 내용을 통해 알림을 받는 등 (최근 이 대화상자를 표시하기 전에 자신의 대화상자를 표시하는 응용 프로그램도 증가하고 있다)
여러분이 설치할 때 이 디스플레이 시기를 꼭 고려해 주십시오.
2. 트리거 설정
앞
ローカル通知を表示させる際の条件
에도 적힌 조건마다 트리거를 설정합니다.// 設定に必要なクラスをインスタンス化
var notificationTime = DateComponents()
let trigger: UNNotificationTrigger
// 12時に通知する場合
notificationTime.hour = 12
notificationTime.minute = 0
trigger = UNCalendarNotificationTrigger(dateMatching: notificationTime, repeats: false)
/*その他の設定*/
// 設定したタイミングを起点として1分後に通知したい場合
trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: false)
이때 UNCalendarNotificationTrigger(repeats:)
매개변수를 true
로 설정하면 지정된 조건을 충족할 때마다 공지가 수행되고 false
로 설정하면 한 번만 공지가 수행됩니다.3. 알림의 표시 내용에 대한 설정
그리고 알림을 결정하는 표시 내용을 설정합니다.
// UNMutableNotificationContentクラスをインスタンス化
let content = UNMutableNotificationContent()
// 通知のメッセージセット
content.title = ""
content.body = "食事の時間になりました!"
content.sound = UNNotificationSound.default()
이때 .title
및 .sound
은 임의의 것이므로 설정할 필요가 없지만 .body
은 필수 항목이므로 문자열의 지정이 없으면 원래 정보가 표시되지 않습니다. 주의하십시오.4. 등록 알림
마지막으로 이전에 설정한 내용을 등록하여
UNUserNotificationCenter
에 추가합니다.// 通知スタイルを指定
let request = UNNotificationRequest(identifier: "uuid", content: content, trigger: trigger)
// 通知をセット
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
이 처리는 응용 프로그램이 백그라운드로 이동할 때 등록하려고 하기 때문에 applicationDidEnterBackground(_ application:)
내에 실시됩니다.AppDelegate.swift
func applicationDidEnterBackground(_ application: UIApplication) {
// 通知設定に必要なクラスをインスタンス化
let trigger: UNNotificationTrigger
let content = UNMutableNotificationContent()
var notificationTime = DateComponents()
// トリガー設定
notificationTime.hour = 12
notificationTime.minute = 0
trigger = UNCalendarNotificationTrigger(dateMatching: notificationTime, repeats: false)
// 通知内容の設定
content.title = ""
content.body = "食事の時間になりました!"
content.sound = UNNotificationSound.default()
// 通知スタイルを指定
let request = UNNotificationRequest(identifier: "uuid", content: content, trigger: trigger)
// 通知をセット
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}
이렇게 하면 프로그램을 한 번 시작한 후에 백그라운드로 옮겨서 알림을 표시할 수 있다.한편 이번 설치는 아래 내용을 참고했다.
간단하고 알기 쉬운 기사 감사합니다 m(__)m
[iOS10] 사용자 공지 프레임워크에서 알림 사용자 정의
[Swift3.0] 로컬 알림을 먼저 엽니다.
Reference
이 문제에 관하여(로컬 알림 구현 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamataku29/items/f45e77de3026d4c50016텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)