Tính năng push notification cho app iOS & Android

Một bảng điều khiển và một REST API để đăng ký thiết bị, gửi thông báo, gửi cuộc gọi và theo dõi kết quả trên cả hai nền tảng.

iOS

Push notification iOS qua Apple APNs

TingPush kết nối trực tiếp tới Apple Push Notification service bằng giao thức HTTP/2 và khoá xác thực .p8 (token-based). Một khoá dùng được cho mọi app trong cùng tài khoản Apple Developer và không hết hạn hằng năm như chứng chỉ .p12.

  • Tách môi trường sandbox (build từ Xcode) và production (TestFlight, App Store)
  • Hình ảnh đính kèm, âm thanh, badge, thread-id, category, interruption level
  • Silent push (content-available) để đồng bộ dữ liệu nền
  • Nút “Kiểm tra” xác nhận Team ID, Key ID, Bundle ID đúng trước khi gửi thật

Cần chuẩn bị

Khoá APNs
File .p8 từ Apple Developer → Keys
Team ID
10 ký tự, ở trang Membership
Key ID
Hiện cạnh khoá vừa tạo
Bundle ID
Ví dụ vn.congty.app

Android

Push notification Android qua Firebase Cloud Messaging

Dùng FCM HTTP v1 API – phiên bản Google khuyến nghị sau khi ngừng API legacy. Bạn chỉ cần tải lên file service account JSON, TingPush tự lấy và làm mới access token.

  • Notification message và data message
  • Channel ID, small icon, màu nhấn, ảnh lớn (big picture)
  • Mức ưu tiên cao cho tin quan trọng, TTL và collapse key
  • Tương thích Android 13+ (quyền POST_NOTIFICATIONS) qua SDK

Cần chuẩn bị

Service account
Firebase Console → Project settings → Service accounts → Generate new private key
google-services.json
Đặt trong app Android như bình thường

Cuộc gọi

Thông báo cuộc gọi đến (VoIP push, CallKit)

Xây tính năng gọi thoại, gọi video như Zalo hay Messenger: điện thoại đổ chuông với màn hình cuộc gọi hệ thống kể cả khi app đã tắt hoàn toàn.

  • iOS: VoIP push qua PushKit, hiện màn hình CallKit; dùng chung khoá .p8, không cần chứng chỉ VoIP riêng
  • Android: data message ưu tiên cao, hiện màn hình đổ chuông toàn màn hình
  • Hết thời gian đổ chuông tự hết hạn, không giao cuộc gọi muộn
  • Gửi “kết thúc cuộc gọi” khi người gọi huỷ hoặc đã nghe ở máy khác

Phù hợp cho

  • App chat, mạng xã hội
  • Khám bệnh từ xa (telehealth)
  • Tổng đài, chăm sóc khách hàng
  • Chuông cửa, camera thông minh

Phân nhóm

Chọn người nhận chính xác

Gắn External ID (mã user trong hệ thống của bạn) và tag cho từng thiết bị, rồi gửi theo bất kỳ tiêu chí nào.

Tất cả người dùng

Gửi tin chung, khuyến mãi, thông báo bảo trì tới mọi thiết bị đang hoạt động.

Theo user

Gửi tới mọi thiết bị của một hoặc nhiều user bằng External ID – một người dùng nhiều máy vẫn nhận đủ.

Theo tag

Lọc theo tag như tinh=hanoi, goi=vip, kết hợp nhiều điều kiện.

Theo thiết bị / token

Gửi thử tới đúng máy đang kiểm thử, hoặc gửi thẳng tới push token có sẵn.

Cho lập trình viên

REST API tương thích OneSignal

API gửi thông báo nhận cùng cấu trúc với OneSignal Create notification: headings, contents, data, include_aliases, filters… Backend viết bằng bất kỳ ngôn ngữ nào cũng gọi được, chỉ cần HTTP.

  • App ID công khai cho app mobile, API Key bí mật cho backend
  • Xoay vòng API Key bất kỳ lúc nào
  • Trả về số gửi thành công, thất bại cho từng thông báo
curl
curl -X POST https://api.cua-ban.vn/notifications \
  -H "Authorization: Key psk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "app_id": "8f2c…e41a",
    "filters": [{ "field": "tag", "key": "goi",
                  "relation": "=", "value": "vip" }],
    "headings": { "en": "Ưu đãi riêng cho bạn" },
    "contents": { "en": "Giảm 30% hôm nay" }
  }'

SDK

SDK cho Flutter, React Native, iOS, Android, .NET MAUI

SDK lo việc xin quyền, lấy token, đăng ký thiết bị, gắn user và tag, hiện thông báo và màn hình cuộc gọi. Mỗi nền tảng có hướng dẫn từng bước trong bảng điều khiển.

SwiftiOS 13+
KotlinAndroid 6+
FlutteriOS & Android
React NativeiOS & Android
.NET MAUIiOS & Android

Theo dõi

Lịch sử gửi và quản lý thiết bị

  • Tỉ lệ thành công, số lỗi và lỗi mẫu từ Apple/Google cho từng thông báo
  • Xem lại request gốc, gửi lại một chạm
  • Token đã gỡ app hoặc hết hạn tự chuyển sang không hoạt động
  • Tìm kiếm, lọc, bật/tắt và gửi thử tới từng thiết bị

Bảo mật

Bảo mật và quyền sở hữu dữ liệu

  • Khoá APNs/FCM mã hoá khi lưu trữ
  • API Key chỉ lưu dạng băm SHA-256, so sánh thời gian hằng số
  • Đăng ký tài khoản xác thực OTP qua email
  • Bản on-premise: dữ liệu nằm trên SQL Server của bạn

Sẵn sàng gửi thông báo đầu tiên?

Tạo dự án, tải lên khoá APNs / FCM, cài SDK và gửi. Không cần thẻ thanh toán.