Công nghệ đẩy là một trong những cách nhanh nhất để gửi thông báo tới người dùng ứng dụng của bạn. Để nhận chúng, người dùng không cần thực hiện bất kỳ hành động nào và chúng được bắt đầu ở phía máy chủ và xuất hiện trực tiếp trên thanh thông báo trên màn hình của thiết bị di động. Trong bài học này, chúng ta sẽ hiểu cách triển khai thông báo đẩy trong các ứng dụng được xây dựng trên nền tảng AppMaster .
Send Push
Để gửi thông báo đẩy, các khối Send Push được sử dụng tương ứng với hệ điều hành của thiết bị đích ( iOS hoặc Android ).
Nhận Push Token và Bundle ID
Để thực hiện gửi, bạn nên chỉ định ít nhất hai tham số: Push Token và IOS (Android) Bundle ID . Do đó, đáng để bắt đầu với phần chuẩn bị và tìm cách lấy các tham số này.
Theo mặc định, cơ sở dữ liệu của mỗi dự án chứa một mô hình Phiên bản Mobile Instance được liên kết với mô hình User và chứa các trường bắt buộc: push_token và bundle_id .
Hãy tạo một quy trình kinh doanh riêng cho ứng dụng dành cho thiết bị di động, quy trình này sẽ tạo thành mô hình Mobile Instance hoàn chỉnh. Để nhận mã thông báo đẩy, hãy sử dụng khối Get Push Token mã thông báo đẩy.
Bước tiếp theo là lấy thông tin về thiết bị. Và ở đây, tùy thuộc vào hệ điều hành, các khối khác nhau sẽ được yêu cầu. Do đó, để xác định hệ điều hành, bạn phải sử dụng khối Platform Switch .
Tùy thuộc vào kết quả, khối IOS Device Info Android Device Info tương ứng được sử dụng. Từ đó, bạn có thể nhận được nhiều thông tin khác nhau về thiết bị, nhưng trong ví dụ của chúng tôi, chỉ cần tìm ra Bundle ID là đủ.
Sau khi thu thập tất cả dữ liệu, bạn có thể tạo mô hình Mobile Instance , cho biết nó thuộc về hệ điều hành nào và chuyển nó làm tham số đầu ra của quy trình kinh doanh.
Ghi thông tin về thiết bị di động của người dùng
Bước tiếp theo là tạo một quy trình kinh doanh phụ trợ để kết nối Phiên bản Mobile Instance đã tạo với một người dùng cụ thể và ghi vào cơ sở dữ liệu. Quá trình kinh doanh này yêu cầu như sau:
- Tìm ra người dùng hiện tại bằng cách sử dụng khối Auth: Get current user .
- Mở rộng nội dung của mô hình Mobile Instance kết quả.
- Lắp ráp lại mô hình và thêm kết nối người dùng vào mô hình đó bằng cách sử dụng khối Make Mobile Instance .
- Sử dụng DB: Create Mobile Instance và lưu dữ liệu vào cơ sở dữ liệu.
Trong điểm cuối POST /Mobile Instance/ , bạn có thể thay thế quy trình công việc tiêu chuẩn bằng quy trình vừa được tạo.
Giai đoạn chuẩn bị cuối cùng là quyết định thời điểm chính xác nên ghi thông tin về thiết bị của người dùng vào cơ sở dữ liệu. Giải pháp hợp lý sẽ là thực hiện điều này khi thực hiện ủy quyền trong ứng dụng. Để thực hiện việc này, ngay sau khối Set Auth Token mã thông báo xác thực, hai khối mới với các quy trình kinh doanh được tạo trước đó phải được thêm vào quy trình ủy quyền người dùng trong ứng dụng di động. Cái đầu tiên nhận và tạo thông tin cần thiết, cái thứ hai tạo kết nối với người dùng và ghi vào cơ sở dữ liệu.
Gửi thông báo đẩy
Phần chuẩn bị đã hoàn tất và bạn có thể bắt đầu gửi thông báo đẩy. Để làm điều này, chúng tôi sẽ tạo một quy trình kinh doanh phụ trợ. Hãy tưởng tượng rằng nhiệm vụ của chúng tôi sẽ là gửi thông báo tới tất cả người dùng ứng dụng của chúng tôi. Chúng tôi sẽ chỉ gửi chúng đến các thiết bị có hệ điều hành Android chứ không phải tất cả các thiết bị của người dùng mà chỉ gửi đến thiết bị được sử dụng lần cuối.
Hãy bắt đầu với các tham số đầu vào. Nó là cần thiết để chuyển văn bản của chính thông báo. Nó bao gồm ba phần: phần thân của thư ( body ), tiêu đề ( title ) và phụ đề ( subtitle ).
Tiếp theo, bạn cần tìm tất cả người dùng của ứng dụng. Để thực hiện việc này, hãy sử dụng khối Search User và đặt các tham số cần thiết:
- _With = Mobile Instances (bạn không chỉ cần lấy thông tin về người dùng mà còn về thiết bị di động được liên kết với nó)
- Limit = -1 (theo mặc định, truy vấn trả về 25 bản ghi, “-1” được chỉ định để xóa giới hạn này và nhận tất cả người dùng)
- _mobile_instances_os = Android (theo điều kiện của nhiệm vụ, chúng tôi chỉ quan tâm đến thiết bị Android )
Đối với mảng người dùng đã tạo, bạn cần chạy một chu kỳ hoạt động ( For each loop )
Đối với mỗi người dùng từ khối Expand User người dùng, bạn cần lấy thông tin về thiết bị di động ( Mobile Instances ). Chúng tôi chỉ cần gửi thông báo tới một thiết bị, vì vậy chúng tôi đặt index = 0 trong khối Array Element và cũng kiểm tra xem mảng có chứa ít nhất một phần tử hay không (xét cho cùng, người dùng chỉ có thể có thiết bị iOS ). Để làm điều này, chúng tôi kiểm tra tính hợp lệ của phần tử, chuyển giá trị chỉ mục hợp lệ cho khối If-Else và chỉ tiếp tục vòng lặp nếu giá trị là true .
Nếu mọi thứ đều chính xác và thông tin về thiết bị của người dùng được tìm thấy, thì bạn cần sử dụng khối Expand Mobile Instance và chuyển các giá trị cần thiết cho khối Send Push (Android) .
Xin lưu ý rằng khi phát triển và thử nghiệm một ứng dụng trong Developer App , bạn phải đặt Developer Mode = True .
Bạn cũng có thể sử dụng tùy chọn TTL (Time to live) . Nó xác định thời gian tính bằng giây để gửi thông báo. Nếu thông báo không thể được gửi ngay lập tức, ví dụ: nếu người dùng tạm thời ở ngoài phạm vi phủ sóng, thì các nỗ lực gửi lại sẽ được thực hiện vào thời gian quy định.
Vào cuối chu kỳ và gửi thông báo cho tất cả người dùng có thể, công việc của quy trình kinh doanh cũng đã hoàn thành.
thông số bổ sung
Một cách riêng biệt, đáng để thảo luận về các tham số bổ sung của khối gửi:
- Push ID
- Push Class
- Data
Chúng không ảnh hưởng đến việc gửi thông báo hoặc nội dung của thông báo nhưng có thể được sử dụng khi xử lý thông báo về phía người dùng. Ứng dụng dành cho thiết bị di động có các trình kích hoạt đặc biệt được kích hoạt khi nhận hoặc nhấp vào thông báo đẩy đã nhận.
Trình kích hoạt thông báo đẩy chứa dữ liệu từ các tham số văn bản bổ sung ở trên. Ví dụ: chúng tôi có thể đưa ra quy trình đơn giản nhất, khi nhấp vào trình kích hoạt, sẽ hiển thị thêm thông báo trên màn hình với thông tin được truyền trong tham số Data .
Một trường hợp sử dụng phổ biến khác cho trình kích hoạt là thu thập thông tin về việc gửi thông báo. Ví dụ: họ có thể gửi thông báo đến máy chủ thông báo rằng thông báo Đẩy thực sự đã được gửi, cũng như thu thập số liệu thống kê và đếm số lần nhấp vào thông báo.