lekoala / silverstripe-pwa

使用 SilverStripe 创建您的渐进式网页应用(PWA)

资助包维护!
lekoala

安装: 5

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

dev-master 2024-09-16 12:59 UTC

This package is auto-updated.

Last update: 2024-09-16 12:59:46 UTC


README

Build Status scrutinizer Code coverage

特性

  • 支持推送通知
  • 生成有效的清单文件
  • 提供默认可配置的服务工作者,可以缓存资源

生成图标

使用 cli npm run generate-assets(-root)(如果您有 app/images/logo.svg 文件)或上传包含所需图标的 zip 文件

注意:注意 maskable icons。您可以在开发者控制台中测试它们的大小。您可以在 maskable.app 进行测试

订阅推送通知

client.js 提供了一些基本代码。您需要放置一个复选框,以便可以切换推送通知的开启/关闭。

<label
    ><input type="checkbox" class="js-push-toggle" /> Enable
    notifications</label
>

这由 client.js 处理。您可以替换客户端代码或完全禁用它

LeKoala\SsPwa\ServiceWorkerController:
    enable_client_js: false
    custom_client_path: "/my/custom/path"

服务工作者

此模块提供默认服务工作者。如果需要,您可以使用自己的

LeKoala\SsPwa\ServiceWorkerController:
    custom_sw_path: "/my/custom/path"

使用 vapid 密钥

您可以使用这个 在线工具 或使用 cli npm run gen-push-keys 生成 vapid 密钥

您需要将它们保存到 .env 文件或作为 YML 配置。

PUSH_PUBLIC_KEY='BK1Zt63e94HgYNm-s9aquI85AUdDRz3uKMxue7woQVZv0_3txywXPgyYd2WPJetayKYq3E_AObBGD9rHWOL_...'
PUSH_PRIVATE_KEY='1nKKQnzGRMNit-TuvklqoTY_ENO8eAybp1MsZWx0...'

发送推送通知

您可以使用以下代码片段

PushSubscription::sendPushNotifications($where, $data);

鸣谢

感谢 https://github.com/a2nt/silverstripe-progressivewebapp 提供了一些灵感 :-)

兼容性

已测试与 ^4.11

维护者

LeKoala - thomas@lekoala.be