# @zapiack/web 中文文档

规范地址：https://npmcn.com/package/%40zapiack/web/

版本：0\.1\.0
npm 元数据更新时间：2026-11-02T23:37:45.135Z
中文译文更新时间：2026-11-03T00:04:49.241Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40zapiack/web
原文对照：https://npmcn.com/package/%40zapiack/web/?lang=original
项目主页：https://docs.zapiack.com/push/client-sdks

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：101 kB，10 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-11-02T23:35:07.506Z
- 最新版本发布：2026-11-02T23:37:44.952Z
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

使用Zapiack的网站推送通知：注册、点击和点击后发生的事情。

## 安装

```sh
npm install @zapiack/web
```

也可以使用：`pnpm add @zapiack/web`、`yarn add @zapiack/web`、`bun add @zapiack/web`

## README

# @zapiack /网络

使用Zapiack为网站推送通知。注册浏览器，显示推送，报告点击，并跟踪访问者的行为 接下来，你可以看到是哪些因素让人们回来，以及他们回来后做了什么。

```bash
npm install @zapiack/web
```

或者使用script标签：

```html
<script src="https://cdn.jsdelivr.net/npm/@zapiack/web/dist/zapiack.global.js"></script>
<script>Zapiack.Push.init({ appKey: 'pk_...' });</script>
```

## 设置

**1\. 托管service worker** 在您的网站的根，所以它可以控制每一个页面。复制 `node_modules/@zapiack/web/dist/zapiack-sw.js` 来 `/zapiack-sw.js`，或者从那里上菜。

**2\. 为你的项目设置推送** 在仪表板上(**推**,然后 **设置推送**)，并开启网页平台，然后输入你的 网站的地址。你得到一个公钥，开头是 `pk_`。它可以安全地放在您的页面中。

**3\. 从每一页开始：**

```ts
import { ZapiackPush } from '@zapiack/web';

await ZapiackPush.init({ appKey: 'pk_...' });
```

**4\. 通过点击请求许可**，而不是页面加载：

```ts
button.addEventListener('click', async () => {
  const answer = await ZapiackPush.requestPermission(); // 'granted' | 'denied' | 'default'
});
```

当访问者同意时，浏览器被订阅并注册。之后，它在每次页面加载时再次注册自己。

## 将浏览器链接到用户

```ts
await ZapiackPush.login('user_123');   // the id your server uses for them
await ZapiackPush.logout();            // on sign-out

await ZapiackPush.addTags({ plan: 'pro' });
await ZapiackPush.removeTags(['plan']);
```

然后您的服务器可以发送到 `{ externalUserIds: ['user_123'] }` 或者 `{ tags: { plan: 'pro' } }`.

## 知道通知何时被点击

```ts
ZapiackPush.onClick((click) => {
  // click.link, click.event, click.actionId (the button, if one was tapped)
});
```

链接会自动打开。这用于您自己的路由或在页面中显示某些内容。如果点击打开了一个新页面，则 加载页面后，处理程序仍然运行。

## 看看水龙头后会发生什么

推送可以要求在访问者点击后跟随他们一段时间。当窗口打开时：

```ts
await ZapiackPush.track('purchase_completed', { orderId: 'ord_789' });
```

报告事件，记入推送，当您的服务器将其命名为推送的目标时，它将被视为转换。如果推一下 询问屏幕时，也会报告页面更改，而不需要您的代码。 `track` 什么都不做，然后回来 `false`，当 客人不是被推着来的，或者窗户已经过去了。

## 其他

```ts
ZapiackPush.isSupported();      // false in browsers that cannot receive web push
ZapiackPush.permission();       // 'granted' | 'denied' | 'default'
await ZapiackPush.installationId();
await ZapiackPush.unsubscribe();
```

`init` 选项: `serviceWorkerPath` (默认 `/zapiack-sw.js`)， `serviceWorkerScope`， `autoRegister` (默认 `true`)， `appVersion`.

## 很高兴知道

-   事件保存在设备上，并在网络允许的时候发送，因此关闭的标签或停止的service worker不会损失任何东西。
-   只有从通知中打开的网页：链接中的其他内容将被忽略。
-   推送中设置的图片会显示在浏览器支持的位置；按钮只在显示它们的地方（Chrome和Edge）。
-   Web推送需要一个安全的页面（https，或者在构建时使用本地主机）。

## 许可证

麻省理工学院

## 常见问题

### @zapiack/web 是什么？

使用Zapiack的网站推送通知：注册、点击和点击后发生的事情。

### 如何安装 @zapiack/web？

在项目目录运行 npm install @zapiack/web，或使用 pnpm add / yarn add / bun add。

### @zapiack/web 支持 TypeScript 吗？

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

### @zapiack/web 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @zapiack/web 可以商用吗？

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

### @zapiack/web 还在维护吗？

最新版本 0\.1\.0 发布于 2026/11/03（今天）；至今共发布 2 个版本，其中过去 12 个月发布了 2 个；首次发布于 2026/11/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

