angular - Web浏览器上的离子角度测试PushNotifications
问题描述
我正在构建将用于移动和网络的应用程序。我想使用 firebase 推送消息发送用户消息,因为我正在使用 PushNotifications 库。
从'@capacitor/core'导入{插件,PushNotification,PushNotificationToken,PushNotificationActionPerformed,};
它在移动设备上运行良好,但在网络浏览器上它给出 ERROR: Uncaught (in promise): PushNotifications does not have web implementation。
我确实理解该消息的含义,但我找不到 PushNotifications 是否有 Web 实现,或者我应该使用另一个库吗?
解决方案
通知
在 Web 上推送通知最接近的功能是 Progressive Web Apps / service workers 提供的通知。如果您已经看到那些“此网站想要向您发送通知”批准/阻止通知,那么您已经在网络上体验过通知。
这是关于如何启用它们的两个很棒的深入教程:
- https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Re-engageable_Notifications_Push
- https://developers.google.com/web/fundamentals/codelabs/push-notifications
Angular 还提供了一个很棒的 service worker 库,这里概述了它的启用。
请记住,浏览器对通知的支持是有限的,即并非所有浏览器都支持这一点。最值得注意的是,Safari 没有(截至本文发表时)。
错误
至于错误,您可以这样处理,以确保它不会在浏览器中抛出:
import { Capacitor } from '@capacitor/core';
const isPushNotificationsAvailable = Capacitor.isPluginAvailable('PushNotifications');
if (isPushNotificationsAvailable) {
this.initPushNotifications();
}
推荐阅读
- c# - Excel VBA - 具有多个参数的 Shell 可执行文件
- java - 如何在不复制拓扑的情况下测试 Kafka Stream 应用程序?使用 TopologyTestDriver?
- python-2.7 - 什么定义了“完整”的 Luigi 任务?
- searchkick - Searchkick 重新索引,但除非给出完整的单词,否则搜索不起作用
- python - TypeError: ArrayType(DoubleType,true) 不能接受对象 u'..'
- html - div 布局没有得到与预期相同的结果
- node.js - NodeJS - 从 S3 读取文件到 Lambda 中的 /tmp 文件夹
- powershell - 模块中的变量不显示
- python-3.x - 更快的方法:在熊猫数据框中分配 vs 附加
- microsoft-graph-api - 如何使用 MS Graph API 从存档邮箱中获取消息