【问题标题】:Phonegap Push Notifications for Android in 2019 - does it work?2019 年适用于 Android 的 Phonegap 推送通知 - 有效吗?
【发布时间】:2019-03-07 15:35:55
【问题描述】:

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

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

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

(请注意,Phonegap Developer 应用程序说它与 Play 商店中的 Android 8 不兼容,因此必须从其他地方下载 APK。这是否表明什么都不起作用?)

然后我发现Phonegap有个“新”推送服务,我也下载了,才发现this is no longer in service either

所以现在我发现有一些 3rd 方应用程序可以提供推送服务(大部分不是免费的)。 “PushWhoose”等服务。

有人知道,这些第 3 方服务是否有效?哪些是最可靠的使用?它们适用于哪些版本的 Android 和 iOS?

任何帮助表示赞赏。

【问题讨论】:

标签: android ios push-notification phonegap


【解决方案1】:

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

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

我们已经在 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" />

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

*-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 处于同一级别。

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

【讨论】:

  • 感谢您的回复。有什么方法可以直接从 CLI 发送测试消息,而不必使用第 3 方?
  • 我从不这样做,但我发现了这个:docs.phonegap.com/references/phonegap-cli/push 我认为将应用程序配置为此类通知的接收者是有先决条件的,但我没有找到任何相关信息。希望对你有帮助
  • 谢谢。前几天我试过了,但 phonegap CLI 不再支持它。烦人的他们不会删除过时的内容。关于 Firebase 云消息服务,除了 Phonegap 默认自带的 + FCM 插件之外,是否还有其他依赖项需要添加?抱歉所有问题
  • 不要道歉,如果我不想回答你的问题,我不会在 stackoverflow 上。我编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多