+2

Push notification in android

Giới thiệu

  • Một thông báo (notification) là một tin nhắn, thông điệp được hiển thị trong một thời gian ngắn trên thanh trạng thái của thiết bị nhằm gây sự chú ý của người dùng
  • Khi xây dựng ứng dụng di động, việc push notification là một chức năng hẳn không thể bỏ qua, nó sẽ là cho ứng dụng của bạn trở nên (ngon) hơn.
  • Nó tương tự như một tin nhắn thông thường (SMS ), tuy nhiên nó khác SMS là dịch vụ này hiện nay là hoàn toàn miễn phí và cần có kết nối internet mới có thể gửi và nhận notification. và notification chỉ có thể gửi cho ứng dụng mà nhà phát triển đã đăng ký và người dùng có cài ứng dụng đó.
  • Các notification này sẽ hiển thị trên thanh trạng thái của smartphone và tablet, thường thanh trạng thái ở phía trên cùng của màn hình.
  • Thông thường một thông báo là được tự động kích hoạt nhằm thông báo tới người dùng là ứng dụng đó đã hoàn thành một công việc nào đó. Hoặc bạn có thể gửi thông tin khuyễn mãi tới cho khách hàng của bạn, mời khách hàng tham gia một sự kiện nào đó... -
  • Chi tiết tạo một android notification http://o7planning.org/vi/10427/huong-dan-su-dung-thong-bao-trong-android-android-notification

Các lưu ý khi dùng notification

  • Notification là dịch vụ của nhà cung cấp hệ điều hành như Apple ( iOS ), Google (Android ), Blackberry, Microsoft ( Windows Phone )
  • Việc gửi và nhận phải thông qua server của các nhà cung cấp hệ điều hành trên vì vậy bắt buộc phải nó internet.
  • Notification đến nhanh hay chậm phụ thuộc vào nhiều yếu tố như đường truyền internet, smartphone, server của nhà cung cấp hệ điều hành...
  • Hiện nay ngoài ưng dụng trên di động sử dụng notification thì nhiều trình duyệt web và hệ điều hành trên may tính cũng đã ứng dụng dịch vụ này vào. Ví dụ như trình duyệt Chrome, hệ điều hành Mac, Windows 10... Một số dịch vụ cung cấp việc push notification miễn phí đối với người dùng trong đó có GCM (Google Cloud Message) - vấn đề mà bài viết đề cập ngay bên dưới

Cách sử dụng Google Cloud Message trong Android

Cách thức server và client tương tác với nhau:

Quy trình hoạt động như sau: Bước 0: – Tạo một Project trên https://console.developers.google.com Sender Id và Application Id – Xây dựng Server và WebService của ta với CSDL phù hợp để lưu trữ Registration Id. Bước 1: – Các thiết bị Mobile Android sẽ gửi Sender Id và Application Id lên GCM server để đăng ký (thông số Sender Id được cung cấp từ Google Developers). Bước 2: – Sau khi đăng ký thành công thì GCM Server sẽ tạo ra một mã đăng ký gọi là Registration Id. Bước 3: – Thiết bị Android này sẽ gửi Registration Id của mình lên Server. Bước 4: – Server lưu lại Registration Id. Bước 5: – khi muốn gửi notification từ server về client. Server sẽ ko trực tiếp gửi thẳng về ứng dụng mà thay vào đó, notification ở bước này sẽ được gửi lên GCM Server theo JSON format Bước 6: – Sau khi GCM Server nhận được tin nhắn theo định dạng JSON ở bước 5, nó sẽ tiến hành gửi tơi tất cả các client có Registration Id được đăng ký trong gói JSON này và gần như ngay lập tức các Client đều nhận được. Trên đây là 6 bước cơ bản để có thể tạo ra một ứng dụng của riêng bạn. 1 ứng dụng nho nhỏ có thể là nhắn tin free mà có thể hạn chế tối đa những người có thể theo dõi các tin nhắn của bạn =))

1 gem không hề xa lạ trong việc push notification - gem GCM, đó cũng là đề tài mà mục dưới đây sẽ trình bày

Gem GCM for Android and iOS

Làm thế nào có thể dễ dàng triển khai với 1 dev Android mà ko mất quá nhiều công sức học thêm một ngôn ngữ khác, hãy đến với ruby (hihi) với các thư viện chúng ta ko mất quá nhiều công sức để làm, tài liệu cũng sẵn dùng 😄 ví dụ như gem gcm này chẳng hạn :v :v Dưới đây là một số điều cần thiết khi sử dụng gem GCM mà mình tìm hiểu được

Điều đầu tiên đó là cài đặt gem :v

$ gem install gcm

Tiếp theo đó là thực hiện việc gửi notification


gcm = GCM.new("my_api_key")
registration_ids= ["12", "13"] # an array of one or more client registration tokens
options = {data: {score: "123"}, collapse_key: "updated_score"}
response = gcm.send(registration_ids, options)

Gửi một thông báo cho 1 nhóm các thiết bị

response = gcm.create(key_name: "appUser-Chris",
                project_id: "my_project_id", # https://developers.google.com/cloud-messaging/gcm#senderid
                registration_ids:["4", "8", "15", "16", "23", "42"])

Add/Remove Registration Tokens

Một phương thức ko thể thiếu trong việc thêm/ xóa thiết bị đối với 1 ứng dụng

response = gcm.add(key_name: "appUser-Chris",
                project_id: "my_project_id",
                notification_key:"appUser-Chris-key",
                registration_ids:["7", "3"])

response = gcm.remove(key_name: "appUser-Chris",
                project_id: "my_project_id",
                notification_key:"appUser-Chris-key",
                registration_ids:["8", "15"])

Hi vọng những gì mình tìm hiểu trên đây sẽ giúp ích được cho các bạn phần nào khi triển khai một ứng dụng android 😄

Tài liệu tham khảo:


All Rights Reserved

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