- vừa được xem lúc

Local push notification trong iOS

0 0 29

Người đăng: Dang Xuan Duy

Theo Viblo Asia

Đã bao giờ các bạn tự hỏi: Mình không biết về Backend, mà muốn viết một ứng dụng có thể push thông báo tới cho người dùng thì có cách nào khác không? Chắc chắn là có rồi. Các bạn có thể sử dụng Local push notification của iOS.
Local push notification phù hợp với việc tạo ra các lịch trình có sẵn để thông báo tới người dùng như nhắc nhở làm một việc gì đó.
Ở bài viết này, mình sẽ hướng dẫn các bạn thực hiện config và chạy thử một demo về local push notification.

Tạo project

Mở Xcode, và tạo một new Single View App.

Tiếp theo mình nhập tên và các thông tin liên quan rồi bấm Next để tạo project.

Giao diện rất đơn giản, mình chỉ để một button gửi notification.

Xin quyền người dùng

Chắc hẳn việc xin quyền người dùng để push notification đã rất quen thuộc với các bạn.

 func requestPermision() { UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (granted, err) in print("granted: (\(granted)") } }

Gửi thông báo

Để gửi thông báo, mình sẽ tạo một instant của UNMutableNotificationContent. Đối tượng UNMutableNotificationContent chứa dữ liệu của thông báo sẽ hiển thị bao gồm title, body, subtitle.

 let content = UNMutableNotificationContent() content.title = "Local push notification" content.subtitle = "Local push notification" content.body = "Local push notification"

Muốn thêm Media content thì hãy sử dụng UNNotificationAttachment.

 let imageName = "sun" guard let imageURL = Bundle.main.url(forResource: imageName, withExtension: "png") else { return } let attachment = try! UNNotificationAttachment(identifier: imageName, url: imageURL, options: .none) content.attachments = [attachment]

Trigger

Trigger chính là cách mà mình chỉ định các điều kiện gửi thông báo. Có 3 loại trigger:

  • UNTimeIntervalNotificationTrigger: Chỉ định thời gian sẽ phát ra thông báo. Ví dụ cứ 5 giây sẽ phát ra thông báo.
  • UNCalendarNotificationTrigger: Chỉ định hẹn ngày giờ thông báo. Ví dụ chỉ định rõ ngày 18/12/2020 sẽ phát thông báo.
  • UNLocationNotificationTrigger: Chỉ định địa điểm phát ra thông báo.

Ở bài viết này, mình sẽ sử dụng UNTimeIntervalNotificationTrigger sau 5 giây sẽ phát ra thông báo và không lặp lại thông báo.

 let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)

Một điều lưu ý nếu bạn muốn lặp lại thông báo thì timeInterval phải lớn hơn 60 giây. Nếu không sẽ bị crash app.

Tạo request

Để tạo request, mình sử dụng UNNotificationRequest. Sau đó dùng UNUserNotificationCenter để lên lịch để gửi.

 let request = UNNotificationRequest(identifier: "notification.duy", content: content, trigger: trigger) UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)

Build và run ứng dụng, Click vào Send Local push notification và chờ kết quả.

Chúc các bạn thành công.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 281

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 206

- vừa được xem lúc

Swift: Tạo custom phép toán tử (Operator) của riêng bạn!

Swift cho phép bạn tạo các toán tử có thể tùy chỉnh của riêng bạn. Điều này đặc biệt hữu ích khi bạn xử lý các loại dữ liệu của riêng mình. Operator Types in Swift. Có năm loại toán tử chính trong Swift.

0 0 56

- vừa được xem lúc

Chương 6 Protocol oriented programming.

Cuốn sách này là về lập trình hướng protocol. Khi Apple thông báo swift 2 ở WWDC 2015.

0 0 46

- vừa được xem lúc

Ví dụ về UIActivityViewController

Trên iOS, UIActivityViewController cung cấp giao diện thống nhất để người dùng chia sẻ và thực hiện các hành động trên văn bản, hình ảnh, URL và các mục khác trong ứng dụng. let string = "Hello, world!". let url = URL(string: "https://nshipster.com").

0 0 58

- vừa được xem lúc

Quản lý self và cancellable trong Combine.

. . Công việc quản lý bộ nhớ memory management thường trở nên phức tạp khi chúng ta thực hiện các tác vụ bất đồng bộ asynchronous vì chúng ta thường phải lưu giữ một số object nằm ngoài scope mà object được define trong khi vẫn phải đảm bảo được việc giải phóng object đó được thực hiện đúng quy trìn

0 0 41