Phonegap 推送通知可能吗?

Posted

技术标签:

【中文标题】Phonegap 推送通知可能吗?【英文标题】:Phonegap Push Notification possible? 【发布时间】:2015-10-25 10:48:15 【问题描述】:

我想在我的 phonegap (android, ios) 项目中实现推送通知。每当有事件更新时,用户都应该收到一条消息。

我无法理解这样做的方式。

当我的应用程序未运行时,如何“检查更新”? phonegap 也能做到这一点?

感谢您的帮助

【问题讨论】:

Phonegap- Support for push notification的可能重复 【参考方案1】:

我无法理解这是如何完成的。

您可能知道,PhoneGap(或Cordova 开源版本)只是一个模仿真实应用程序包装您的网站的应用程序。当应用程序未运行时,您的网站也未运行。如果您想收到通知,这无法在网站中完成。

您可以使用 PhoneGap 与操作系统(iOS 或 Android)对话并注册您的通知。您可以在 PhoneGap 中编写特定插件或使用现有的插件,如 phonegap-plugin-push。

这个插件基本上分为三个步骤:

1) 创建 - 针对不同操作系统进行初始化

var push = PushNotification.init( 
       "android": "senderID": "12345679",
       "ios": "alert": "true", "badge": "true", "sound": "true",
       "windows":  
     );

2) 注册 - 什么时候触发通知

push.on('registration', function(data) 
    // data.registrationId
);

3) 行动 - 发生这种情况时该怎么办

push.on('notification', function(data) 
    // data.message,
    // data.title,
    // data.count,
    // data.sound,
    // data.image,
    // data.additionalData
);

【讨论】:

【参考方案2】:

除了(几乎)重复的问题中的答案之外,我还想提两件事。

您可以尝试使用 websockets。像Primus 这样的实现可以让您将数据从服务器“推送”到所有或选定的客户端。

但是:正如您所提到的,如果您的应用处于后台、深度睡眠或关闭状态,websocket 可能无法传递数据。

因此,您必须使用Google Cloud Messaging 或类似服务。这些服务都使用了 cordova 插件,这些插件在您的应用程序中注册了一个后台服务,即使您的应用程序没有运行,也能够接收推送通知。

【讨论】:

以上是关于Phonegap 推送通知可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以使用phonegap框架在iphone中推送通知吗?

Phonegap 在设备上启用推送通知

使用 phonegap + jQuery mobile 推送通知

Ionic - 向同一组中的用户推送通知

Sencha Phonegap Android 推送通知

phonegap build:没有收到 ios 推送通知