我使用Phonegap为iPhone和Android创建了一个应用程序。
现在我想添加已经运行良好的推送功能。
当推送消息到达我的iPhone时,我在主屏幕上收到一条消息。如果我滑动它,iOS将打开我的应用程序。 - 到目前为止一切顺利。
现在,在我的PhoneGap应用中,我需要检查该消息的实际内容,以便在我的应用中通过JavaScript 打开正确的视图。
我知道有很多关于此的帖子,但我找不到这些问题的明确答案:
答案 0 :(得分:3)
通过Pushwoosh ID,您最有可能意味着Pushwoosh应用程序ID或应用程序代码。它是Pushwoosh控制面板中应用程序的ID(当前格式为XXXXX-XXXXX)。只要在Pushwoosh中添加新应用,您就会看到它。
Holly Schinsky在与Pushwoosh的轻松PhoneGap集成方面做了大量博客文章
http://devgirl.org/2012/12/04/easy-phonegap-push-notifications-with-pushwoosh/
对于所有希望将推送通知集成到他们的应用中的PhoneGap开发人员来说,这应该会非常有用。
答案 1 :(得分:0)
我没有使用框架就找到了一个非常简单的解决方案。
我只是将以下代码添加到方法 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函数。