将 Azure 通知中心与 Firebase 和 iOS(不是 APNS)一起使用
Use Azure Notifications Hub with Firebase and iOS (not APNS)
我正在考虑使用 Azure 通知中心在后端进行设备注册。我正在考虑使用 Firebase 来处理 Android 和 iOS,因为它具有这样做的能力。我正在使用 ionic,所以会使用 firebase 插件。
是否可以通过 firebase 将 pus 通知从 Azure 通知中心发送到 iOS,还是必须仅通过 APNS?
Azure 通知中心通过 FCM 发送 Android 条通知,通过 Apple 推送通知服务 (APNs) 发送 macOS/iOS 条通知。
Azure 通知中心尚未测试通过 Firebase 云消息传递 (FCM) 发送 APNS 通知;它不是受支持的配置。
如果您不介意我问,FCM 是什么让您想通过它发送 Apple 通知?所做的只是在 ANH 已经做得很好的事情之上增加了一层额外的复杂性。
@AndySousa 我在 Azure 论坛上回答了你关于同一主题的问题 - 将回复复制到这里:
我正在尝试就此发表博客 post,但对于 Ionic 4,这是我学到的:
Ionic 团队对框架进行了大量更改,并发布了 Capacitor,这是 Apache Cordova 的替代品。 Capacitor 仍然支持 Apache Cordova,但只是现有插件的一部分。 Ionic 还在 Capacitor 中内置了许多常用插件,因此您不再“需要”Cordova 插件来为您的应用程序提供某些功能。
其中一个示例是 Capacitor Push Notifications 插件,它增加了对向 Capacitor 注册和处理推送通知的支持。如果您按照创建 Ionic 4 项目的过程,将 cordova-azure-notification-hubs 插件添加到其中,并添加注册和处理通知的代码,就像您对 Ionic 3 应用程序所做的那样,您会发现您的应用程序注册成功,但从未“收到”任何通知。
发生的情况是 cordova-azure-notification-hubs 插件正确管理了 Azure 通知中心的注册过程,但 Capacitor Push Notifications 插件拦截了到达设备的所有通知,从而绕过了 Azure 通知中心 SDK .
这意味着要自动注册和接收通知,您的 Ionic 4 应用程序必须同时使用这两个插件。用于管理自动注册的 cordova-azure-notification-hubs 插件,以及用于在它们到达时处理它们的 Capacitor Push Notifications 插件。特别感谢 Matthew Podwysocki (Microsoft) 和 Mike Hartington (Ionic) 解决了这个问题。
我们创建了一个示例应用程序 (https://github.com/Azure/azure-notificationhubs-samples/tree/master/Ionic/ionic-4),展示了如何在 Ionic 4 应用程序中使用该插件。该示例为管理注册的 Azure 通知中心实现了相同的 Ionic Provider,但添加了额外的代码以使用 Capacitor Push Notifications 插件来处理收到的通知。有了它,它基本上与 Ionic 3 示例相同 UI 和逻辑(针对 Ionic 4 中的更改进行了更新)。
Capacitor Push 插件还支持类似的注册事件侦听器,您可以使用它来获取设备推送令牌并将其发送到您的应用程序后端以进行 Azure 通知中心注册。这样做就无需在您的 Capacitor 应用程序中使用 cordova-azure-notification-hubs 插件。
注意:我在此处引用的示例应用程序仅用于教育目的,我们不提供 Ionic 支持。
我正在考虑使用 Azure 通知中心在后端进行设备注册。我正在考虑使用 Firebase 来处理 Android 和 iOS,因为它具有这样做的能力。我正在使用 ionic,所以会使用 firebase 插件。
是否可以通过 firebase 将 pus 通知从 Azure 通知中心发送到 iOS,还是必须仅通过 APNS?
Azure 通知中心通过 FCM 发送 Android 条通知,通过 Apple 推送通知服务 (APNs) 发送 macOS/iOS 条通知。
Azure 通知中心尚未测试通过 Firebase 云消息传递 (FCM) 发送 APNS 通知;它不是受支持的配置。
如果您不介意我问,FCM 是什么让您想通过它发送 Apple 通知?所做的只是在 ANH 已经做得很好的事情之上增加了一层额外的复杂性。
@AndySousa 我在 Azure 论坛上回答了你关于同一主题的问题 - 将回复复制到这里:
我正在尝试就此发表博客 post,但对于 Ionic 4,这是我学到的:
Ionic 团队对框架进行了大量更改,并发布了 Capacitor,这是 Apache Cordova 的替代品。 Capacitor 仍然支持 Apache Cordova,但只是现有插件的一部分。 Ionic 还在 Capacitor 中内置了许多常用插件,因此您不再“需要”Cordova 插件来为您的应用程序提供某些功能。
其中一个示例是 Capacitor Push Notifications 插件,它增加了对向 Capacitor 注册和处理推送通知的支持。如果您按照创建 Ionic 4 项目的过程,将 cordova-azure-notification-hubs 插件添加到其中,并添加注册和处理通知的代码,就像您对 Ionic 3 应用程序所做的那样,您会发现您的应用程序注册成功,但从未“收到”任何通知。
发生的情况是 cordova-azure-notification-hubs 插件正确管理了 Azure 通知中心的注册过程,但 Capacitor Push Notifications 插件拦截了到达设备的所有通知,从而绕过了 Azure 通知中心 SDK .
这意味着要自动注册和接收通知,您的 Ionic 4 应用程序必须同时使用这两个插件。用于管理自动注册的 cordova-azure-notification-hubs 插件,以及用于在它们到达时处理它们的 Capacitor Push Notifications 插件。特别感谢 Matthew Podwysocki (Microsoft) 和 Mike Hartington (Ionic) 解决了这个问题。
我们创建了一个示例应用程序 (https://github.com/Azure/azure-notificationhubs-samples/tree/master/Ionic/ionic-4),展示了如何在 Ionic 4 应用程序中使用该插件。该示例为管理注册的 Azure 通知中心实现了相同的 Ionic Provider,但添加了额外的代码以使用 Capacitor Push Notifications 插件来处理收到的通知。有了它,它基本上与 Ionic 3 示例相同 UI 和逻辑(针对 Ionic 4 中的更改进行了更新)。
Capacitor Push 插件还支持类似的注册事件侦听器,您可以使用它来获取设备推送令牌并将其发送到您的应用程序后端以进行 Azure 通知中心注册。这样做就无需在您的 Capacitor 应用程序中使用 cordova-azure-notification-hubs 插件。
注意:我在此处引用的示例应用程序仅用于教育目的,我们不提供 Ionic 支持。