PhoneGap 的推送消息

Posted

技术标签:

【中文标题】PhoneGap 的推送消息【英文标题】:Push Messages for PhoneGap 【发布时间】:2012-12-10 16:10:02 【问题描述】:

我使用 Phonegap 为 iPhone 和 android 创建了一个应用程序。

现在我想添加已经很好用的推送功能。

当推送消息到达我的 iPhone 时,我会在主屏幕上收到一条消息。如果我滑动它,ios 将打开我的应用程序。 - 到目前为止一切顺利。

现在,在我的 PhoneGap 应用中,我需要检查该消息的实际内容,以便在我的应用中通过 JavaScript 打开正确的视图。

我知道有很多关于此的帖子,但我找不到这些问题的明确答案:

PhoneGap 是否支持推送消息? 如果是,相关文档在哪里? 如果没有,可以推荐哪些插件/框架?到目前为止,我找到了 pushwoosh 和 Urbanair。它们有什么好处吗? 关于 Pushwoosh,我注意到我需要某种 pushwoosh ID - 为什么?

【问题讨论】:

【参考方案1】:

Pushwoosh ID 很可能是指 Pushwoosh 应用程序 ID 或应用程序代码。这是您在 Pushwoosh 控制面板中的应用程序 ID(当前格式为 XXXXX-XXXXX)。只要在 Pushwoosh 中添加新应用,您就会看到它。

Holly Schinsky 发表了一篇关于 PhoneGap 与 Pushwoosh 轻松集成的博文

http://devgirl.org/2012/12/04/easy-phonegap-push-notifications-with-pushwoosh/

这对于所有希望将推送通知集成到他们的应用程序中的 PhoneGap 开发人员来说应该非常有帮助。

【讨论】:

【参考方案2】:

我找到了一个非常简单的解决方案,无需使用框架。

我只是将以下代码添加到方法 didFinishLaunchingWithOptions 的最后(就在 return 语句之前):

if (launchOptions != nil)

    NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (dictionary != nil)
    
        NSLog(@"Launched from push notification: %@", dictionary);
        [self addMessageFromRemoteNotification:dictionary updateUI:NO];
    

另外,我将这个新方法添加到我的 AppDelegate.m 中,它从推送消息中获取有效负载:

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo

    NSLog(@"Received notification: %@", userInfo);
    [self addMessageFromRemoteNotification:userInfo updateUI:YES];

(上面的 NSLog 调用会显示推送消息中的内容)

作为最后一步,我添加了这个监听器,以便对有效负载做任何我想做的事情:

- (void)addMessageFromRemoteNotification:(NSDictionary*)userInfo updateUI:(BOOL)updateUI

 // do what ever you want with userInfo

如果您想使用此信息进行额外的 javascript 调用,我建议使用:

[self.viewController.webView stringByEvaluatingJavaScriptFromString:@"callSomeJSFunction()"];

当然,如果需要,您也可以将参数作为字符串传递给该 JS 函数。

【讨论】:

以上是关于PhoneGap 的推送消息的主要内容,如果未能解决你的问题,请参考以下文章

使用 PhoneGap 和 Firebase 云消息传递 (FCM) 的简单推送通知 Android 应用程序

跨平台移动开发phonegap/cordova 3.3全系列教程-百度云推送push

Phonegap 推送通知可能吗?

phonegap 推送插件 - 如何将 source="pgb" 更改为 npm

未收到 Phonegap iOS 推送通知

phonegap 推送通知在 Xcode 中显示错误