0

What's new in User Notification in iOS 10

Tại WWDC hằng nằm, Apple giới thiệu những tools và APIs mới cho iOS Developers. User Notifications không thay đổi nhiều từ lúc lần đầu tiên được giới thiệu. Tuy nhiên, từ iOS 10, User Notifications đã có một sự thay đổi đáng kể.

  • Media attachments có thể được thêm vào trong notifications bao gồm audio, video và image.
  • Notification Content extension cho phép custom giao diện của notification được hiển thị
  • Managing notifications cho phép lấy được user notification settings, có thể query và remove những pending và delivered notifications.
  • Notification Service app extension cho phép xử lý remote notification payload trước khi notification được deliver

Trong bài viết này, mình xin giới thiệu rỏ hơn về những features mới này.

Schedule notification

Có thêm nhiều khái niệm mới như NotificationContent, NotificationTrigger, NotificationRequest,...

  • NotificationContent: cái tên cũng đã nói lên chức năng của nó rồi. Object này encapsulate những thông tin được hiển thị như title, body message, badges, sounds, attachments.
  • NotificationTrigger: xác định điều kiện để notification được deliver. Có nhiều loài trigger khác nhau như: UNCalendarNotificationTrigger, UNLocationNotificationTrigger, UNTimeIntervalNotificationTrigger, UNPushNotificationTrigger.
  • NotificationRequest: chứa notification content và notification trigger.

Các bước để schedule một notification.

  1. Tạo một NotificationContent
  2. Tạo một NotificationTrigger
  3. Tạo một NotificationRequest với content và trigger vừa tạo và add vào notification queue.

Media attachments

Với NotificationContent, ngoài việc hiển thị text như thông thường thì bạn có thể thêm các UNNotificationAttachment objects. Attachment là một image, video hoặc audio.

Notification Content Extension

Notification content extension cho phép custom giao diện của notification được hiển thị, handle những action tương tác với giao diện đó.

Để tạo một Notification Content app extension, tạo mới một Notification Content Extension target và XCode project chứa app của bạn.

Vì đây là một app extension nên nó không thể access resource của app. Nó chỉ có thể access resource từ extension bundle hoặc những resource được lấy từ attachments của notification dưới dạng UNNotificationAttachment objects.

Managing Notifications

UNUserNotificationCenter cho phép lấy thông tin user notification settings của app. Ngoài ra, nó còn cho phép query tất cả những notifications, cả pending và delivered.

  • UNNotificationSettings: cho biết authorization settings của app như alert, badge, sound. App có thể send những thông tin này cho server, server có thể thay đổi những options được thêm trong remote notification payload
  • Delivered và pending notifications: Khi những pending notification đã không còn cần thiết nữa ta có thể remove chúng đi. Những delivered notification được hiển thị trên Notification Center, nếu những notification này đã quá outdated thì chúng ta vẫn có thể tự động remove chúng đi, giúp cho người dùng đỡ mất công dọn dẹp.

Notification Service app extension

Notification Service app extension cho phép lấy nội dung của remote notification và thực hiện một vài operation cần thiết trước khi chúng được deliver tới user.

Ví dụ như decrypte những encrypted data, hoặc download những images tương ứng với image url nhận được trong notification payload.

Để tạo một Notification Service app extension, tạo mới một Notification Service Extension target có một source file là subclass của UNNotificationServiceExtension. Chúng ta sẽ implement những behavior của extension trong file này.

Hi vọng bài viết sẽ có ích. Thân.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.