PushManager

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023.

* Some parts of this feature may have varying levels of support.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Giao diện PushManager của Push API cung cấp một cách để nhận thông báo từ các máy chủ bên thứ ba cũng như yêu cầu các URL cho thông báo đẩy.

Giao diện này được truy cập thông qua thuộc tính ServiceWorkerRegistration.pushManager.

Thuộc tính tĩnh

PushManager.supportedContentEncodings

Trả về một mảng các content coding được hỗ trợ có thể dùng để mã hóa payload của một thông điệp đẩy.

Phương thức thể hiện

PushManager.getSubscription()

Truy xuất một đăng ký đẩy hiện có. Phương thức này trả về một Promise giải quyết thành một đối tượng PushSubscription chứa chi tiết của đăng ký hiện có. Nếu không có đăng ký hiện có, giá trị giải quyết là null.

PushManager.permissionState()

Trả về một Promise giải quyết thành trạng thái quyền của PushManager hiện tại, một trong các giá trị 'granted', 'denied' hoặc 'prompt'.

PushManager.subscribe()

Đăng ký một dịch vụ đẩy. Phương thức này trả về một Promise giải quyết thành một đối tượng PushSubscription chứa chi tiết của đăng ký đẩy. Một đăng ký đẩy mới sẽ được tạo nếu service worker hiện tại chưa có đăng ký nào.

Phương thức lỗi thời

PushManager.hasPermission() Deprecated Non-standard

Trả về một Promise giải quyết thành PushPermissionStatus của webapp yêu cầu, một trong các giá trị granted, denied hoặc default. Được thay thế bởi PushManager.permissionState().

PushManager.register() Deprecated Non-standard

Đăng ký một subscription đẩy. Được thay thế bởi PushManager.subscribe().

PushManager.registrations() Deprecated Non-standard

Truy xuất các subscription đẩy hiện có. Được thay thế bởi PushManager.getSubscription().

PushManager.unregister() Deprecated Non-standard

Hủy đăng ký và xóa một endpoint subscription đã chỉ định. Trong API mới, một subscription được hủy bằng cách gọi phương thức PushSubscription.unsubscribe().

Ví dụ

js
this.onpush = (event) => {
  console.log(event.data);
  // Từ đây chúng ta có thể ghi dữ liệu vào IndexedDB, gửi nó đến bất kỳ
  // cửa sổ nào đang mở, hiển thị thông báo, v.v.
};

navigator.serviceWorker
  .register("serviceworker.js")
  .then((serviceWorkerRegistration) => {
    serviceWorkerRegistration.pushManager.subscribe().then(
      (pushSubscription) => {
        console.log(pushSubscription.endpoint);
        // Các chi tiết đăng ký đẩy cần cho máy chủ ứng dụng hiện đã
        // sẵn sàng và có thể được gửi tới đó bằng, chẳng hạn,
        // API fetch().
      },
      (error) => {
        console.error(error);
      },
    );
  });

Thông số kỹ thuật

Specification
Push API
# pushmanager-interface

Tương thích trình duyệt

Xem thêm