android - 2019 年适用于 Android 的 Phonegap 推送通知 - 它有效吗?

标签 android ios push-notification phonegap

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

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

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

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

然后我发现Phonegap有一个“新的”推送服务,我也下载了,结果发现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 结合使用:

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

<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 版本的安卓插件,因为最后一个版本不适合我。

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

对于 iOS,我使用的是最新版本:

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

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

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

当您拥有sender idgoogle-services.jsonGoogleService-Info.plist 后,您只需配置您的配置。像这样的 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 处于同一级别。

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

关于android - 2019 年适用于 Android 的 Phonegap 推送通知 - 它有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55047534/

相关文章:

android - 图像在 Android 中必须是二的幂吗?

objective-c - Obj C 委托(delegate)方法未分配给 UIButton (iOS)?

ios - 服务已禁用-已为应用程序ID禁用推送服务

iphone - 如何判断 Apple 推送通知服务 APNS 是否处于事件状态

java - 检查导航栏

java - Android MediaPlayer 不播放

ios - Swift:无法触摸 scrollView 上的 Canvas View

iphone - 我需要解析推送通知中的有效负载,但是如果用户按游戏图标而不是按通知,如何获取数据?

android - Powermockito可以与Android Studio 1.2一起使用吗

ios - 使用cordova flle transfer将图像/视频保存到IOS中的图库