@hibira-io/push-web

中文文档
1.3.0发布于 2026/11/01MITTypeScriptES Module零依赖构建来源已验证

Hibira push的Web推送通知:一个从push Beams移动的应用程序的插入式客户端

中文使用文档
文档目录7 节
  1. 安装
  2. 服务工
  3. 使用
  4. 要求访客打开通知
  5. 从@hikibi/push-web
  6. 从beam web SDK开始
  7. 许可证

@hibira-io / push-web

Web推送通知 Hibira推。是网络 兼容beam的推送API的客户端:麻省理工学院许可的push的分支 beam web SDK与主机是可配置的,所以为该SDK编写的代码 更改导入后继续工作。

适用于标准的Web Push浏览器:Chrome, Edge, Firefox, Opera和 Safari 16.4+ (beam SDK没有启用Safari)。

安装

npm install @hibira-io/push-web

或加载脚本,该脚本定义全局的 HibiraPush:

<script src="https://cdn.jsdelivr.net/npm/@hibira-io/push-web@1/dist/push-web.min.js"></script>

服务工

服务于 /service-worker.js 在你的站点根目录下加载我们的:

importScripts('https://cdn.jsdelivr.net/npm/@hibira-io/push-web@1/dist/service-worker.js');
// Only if your app is not on the default cluster:
// self.HibiraPush.endpoint = 'https://ws-tyo.hibira.io';

你也可以复制 node_modules/@hibira-io/push-web/dist/service-worker.js 进入你的网站。要自己处理通知,请设置 self.HibiraPush.onNotificationReceived (与比姆斯的论点相同) onNotificationReceived)。

使用

import { Client, TokenProvider } from '@hibira-io/push-web';

const push = new Client({
  instanceId: 'YOUR_INSTANCE_ID', // portal: app page → Push notifications
  // endpoint: 'https://ws.hibira.io', // the default
});

await push.start();
await push.addDeviceInterest('news');

// Authenticated users: your backend returns a user token
// (generateToken in the server SDKs).
await push.setUserId('alice', new TokenProvider({ url: '/push/user-token' }));

endpoint 是门户中应用页面上显示的推送API基础URL。 endpointOverride 被接受为同义词。

要求访客打开通知

浏览器只会让网站显示几次权限框,而访问者不会 谁点了“阻止”就不能再问了。 promptForNotifications 展示了我们的 首先打开自己的横幅(就像Gmail显示的那样),然后只打开浏览器的框 在访问者点击“打开”之后。一旦他们允许,浏览器就可以 注册,并设置您通过的兴趣和用户ID。

import { promptForNotifications } from '@hibira-io/push-web';

const { outcome } = await promptForNotifications({
  instanceId: 'YOUR_INSTANCE_ID',
  interests: ['orders'],
  siteName: 'Acme Shop',
});
// outcome: 'granted' | 'denied' | 'dismissed' | 'skipped' | 'unsupported' | 'error'

在每个页面加载时调用它:它不会显示已经允许的访问者 通知(它只是确保它们已注册),到没有的浏览器 网络推送,或者在“现在不行”冷却下来的时候。

  • “不是现在” 等待 cooldownDays (7)前再问一遍,后停止 maxAsks (3). resetNotificationPrompt(instanceId) 忘记答案; force: true 无论如何,在你的浏览器中设置“打开通知”按钮 设置。
  • 阻塞: showBlockedHelp: true 控件中的通知取消阻止 浏览器而不是什么都没有。
  • 语言:英语、繁體中文,简体中文,日本語,한국어,ไทย和Tiếng Việt, 从浏览器中选择。集 locale,或将任何字符串替换为 text ({site} 充满了 siteName)。
  • 看: layout: 'bar' (默认情况下,沿着顶部或底部边缘)或 'card' (角), position, theme (auto/light/dark), accent, icon, zIndex, delay。横幅位于一个阴影根,所以你的CSS没有 影响它,它的CSS不会泄漏到您的页面。
  • client, userId 与 tokenProvider, onShow 和 onResult 也 接受;看到 index.d.ts 对于每个选项。

使用CDN脚本 HibiraPush.promptForNotifications({...})。要么 方式, /service-worker.js 以上仍然是需要的。

从@hikibi/push-web

Hikibi现在是Hibira,这个包裹从 @hikibi/push-web 来 @hibira-io/push-web。API是相同的:更改导入和 importScripts URL,并使用 HibiraPush 你用过的地方 HikibiPush ( 旧的名字从1.2.0开始消失了)。 @hikibi/push-web 1.0.0停留在NPM上 (已弃用)并且不会获得新版本。

从beam web SDK开始

beam web SDK@hibira-io / push-web
import * as PusherPushNotifications from '@pusher/push-notifications-web'import * as HibiraPush from '@hibira-io/push-web'
new PusherPushNotifications.Client({ instanceId })new HibiraPush.Client({ instanceId })
importScripts('https://js.pusher.com/beams/service-worker.js')importScripts('https://cdn.jsdelivr.net/npm/@hibira-io/push-web@1/dist/service-worker.js')
PusherPushNotifications.onNotificationReceived = … 在服务工作者中HibiraPush.onNotificationReceived = …

其他的(start、兴趣、 setUserId, stop, clearAllState, getRegistrationState 它的值是不变的。浏览器 在beam的第一个寄存器上再次注册 start().

许可证

麻省理工学院。基于push beam web SDK,版权所有(c) 2019 push;看到 许可证。

版本与发布记录

@hibira-io/push-web 共发布 5 个版本,首次发布于 2026/10/24;过去 12 个月发布了 5 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.3.0latest2026/11/012 天前
1.2.12026/10/294 天前
1.2.02026/10/259 天前
1.1.02026/10/2410 天前
0.0.0-stage2026/10/2410 天前

关于 @hibira-io/push-web 的常见问题

@hibira-io/push-web 是什么?

Hibira push的Web推送通知:一个从push Beams移动的应用程序的插入式客户端

如何安装 @hibira-io/push-web?

在项目目录运行 npm install @hibira-io/push-web,或使用 pnpm add / yarn add / bun add。

@hibira-io/push-web 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@hibira-io/push-web 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@hibira-io/push-web 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@hibira-io/push-web 可以商用吗?

@hibira-io/push-web 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@hibira-io/push-web 还在维护吗?

最新版本 1.3.0 发布于 2026/11/01(2 天前);至今共发布 5 个版本,其中过去 12 个月发布了 5 个;首次发布于 2026/10/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。