【问题标题】:Ionic 5 + Capacitor with Huawei HMSIonic 5 + 带有华为 HMS 的电容器
【发布时间】:2020-10-14 09:34:52
【问题描述】:

我使用 Ionic 5 (Angular) 和 Capacitor 构建了一个应用程序。我正在使用电容器插件进行推送通知。在 iOS 和 Android 上一切正常。但是在华为手机(P30 及更高版本)上,事情无法正常工作。

没有获取设备id,推送通知不起作用,甚至没有触发PushNotifications.addListener('registration', async (token: PushNotificationToken) => {})。

关于我需要做什么才能维护一个代码库并使其在两个 Android“世界”(谷歌和华为)上运行有什么想法吗?

提前致谢, 克里斯

【问题讨论】:

    标签: capacitor huawei-mobile-services ionic5


    【解决方案1】:

    可能你使用的 Ionic 插件是为 GMS 和 Firebase 提供的,因此它们的功能可以直接在 Ionic 中调用。因此,Ionic 开发的应用必须在 Google Play 服务不可用时直接调用 HMS 能力。

    建议您使用 HMS Ionic 插件将 HMS Push Kit 集成到 Ionic App 中。您可以从here 获取推送插件。请使用5.0.0版本。

    或者你可以从 npmjs here 获取它。

    更新:

    如果您想通过检测设备类型并采取相应措施,在同一应用程序中同时使用两个推送通知,您可以使用 G+H 解决方案。使用 G+H 方法,您可以维护一个代码库,并根据两者的可用性决定是使用 GMS 还是 HMS。

    发件人:https://stackoverflow.com/a/63337530/13329100

    【讨论】:

    • 感谢您的回复。我正在使用电容器内置插件进行推送通知。它在后台使用 FCM。这适用于 HMS 吗?如果不是,我使用 HMS Ionic 插件,它们可以共存吗?我如何检测到我应该在运行时使用 HMS 插件还是 Capacitor 插件?或者我应该创建两个版本,一个用于 Google Play,一个用于华为 App Gallery? (我讨厌维护和/或发布两个不同的版本......我选择 Ionic 用于单一来源的跨平台开发......具有讽刺意味的是,必须为仅限 Android 的设备维护两个版本...... ..)
    • @chrisvor 如果您正在寻找一种通过检测设备类型并采取相应措施来允许您在同一应用程序中使用两个推送通知的方法,您可以使用 G+H 解决方案。使用 G+H 方法,您可以维护一个代码库,并根据其中一个的可用性决定是使用 GMS 还是 HMS。
    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2021-01-14
    • 2021-04-12
    • 2020-05-12
    • 1970-01-01
    相关资源
    最近更新 更多