2019 年 Android 的 Phonegap 推送通知 - 它有效吗?

Phonegap Push Notifications for Android in 2019 - does it work?

我看过很多关于在 Phonegap 中使用推送通知的教程和论坛帖子,但其中大部分似乎都已过时。有人知道这在今天(2019 年)是否有效吗?

我通过 Phonegap 创建了 Push Notification demo 并在我的 Android 8 设备上 运行 它。当它运行并显示 "Registered" 时,没有示例通知。

我尝试通过 CLI 发送推送,但也没有用(我被告知 this was removed 所以将不再有效,尽管 Adob​​e 的教程页面已过时)

(请注意,Phonegap Developer 应用表示它与 Play 商店中的 Android 8 不兼容,因此必须从其他地方下载 APK。这是否表明没有任何效果?)

然后我发现Phonegap有一个"new"推送服务,我也下载了,才发现this is no longer in service either.

所以现在我发现有一些第三方应用程序可以提供推送服务(大部分不是免费的)。诸如“PushWhoose”之类的服务。

有谁知道,这些第 3 方服务有效吗?哪些是最可靠的?它们在什么版本的 Android 和 iOS 上有效?

感谢任何帮助。

我有许多生产中的 phonegap (CLI-8.0.0) 应用程序目前正在接收 2019 年的通知,所以是的,它的工作。

我使用了 Firebase 的第 3 方云消息传递 (https://firebase.google.com/docs/cloud-messaging/) 和 phonegap-plugin-push(Android 的版本 2.1.3 和 iOS 的最新版本)

我们已经在 Android 7 和 8 以及 iOS 12 上测试了以下内容。

通知是通过 C# Firebase API 发送的。

如何将 Firebase 与 Phonegap 结合使用:

首先你必须为Android安装4个插件:

<plugin name="phonegap-plugin-push" spec="2.1.3" />
<plugin name="cordova-android-support-gradle-release" spec="https://github.com/dpa99c/cordova-android-support-gradle-release.git" />
<plugin name="cordova-android-play-services-gradle-release" spec="https://github.com/dpa99c/cordova-android-play-services-gradle-release.git" />
<plugin name="cordova-android-firebase-gradle-release" spec="https://github.com/dpa99c/cordova-android-firebase-gradle-release.git" />

我为 android 使用了 2.1.3 版本的插件,因为最后一个版本不适合我。

*-gradle-release 授予您 phonegap-plugin-push 和其他插件之间的完全兼容性,因为经常存在冲突

对于 iOS 我使用的是最后一个版本:

<plugin name="phonegap-plugin-push" />

之后,您必须将您的应用程序注册到 firebase,直到您拥有 sender idgoogle-services.json

对于苹果,您必须授予您的证书推送通知权限并获得 APNS 证书。

当您拥有 sender idgoogle-services.jsonGoogleService-Info.plist 时,您只需像这样配置 config.xml:

<platform name="android" custom="push">
    <plugin name="cordova-android-support-gradle-release" spec="https://github.com/dpa99c/cordova-android-support-gradle-release.git" />
    <plugin name="phonegap-plugin-push" spec="2.1.3">
        <param name="SENDER_ID" value="XXXXXXXXXXXXXXXXXXXXXX" />
    </plugin>
    <plugin name="cordova-android-play-services-gradle-release" spec="https://github.com/dpa99c/cordova-android-play-services-gradle-release.git" />
    <plugin name="cordova-android-firebase-gradle-release" spec="https://github.com/dpa99c/cordova-android-firebase-gradle-release.git"/>
    <resource-file src="google-services.json" target="/app/google-services.json" />
</platform>

<platform name="ios" custom="push">
    <plugin name="phonegap-plugin-push">
        <param name="SENDER_ID" value="XXXXXXXXXXXXXXXX" />
    </plugin>
    <resource-file src="GoogleService-Info.plist" />
</platform>

google-services.json 和 GoogleService-Info.plist 必须与 www 文件夹中的 config.xml 处于同一级别。

在那之后,插件的文档将能够比我更好地帮助你。