如何处理从 parse 收到的推送通知? |订阅服务
How to handle received push notification from parse ? | RSS
使用 Parse,我的推送通知完美运行。
我的应用程序是一个 RSS 新闻提要,我不时发送推送通知,我的问题是当用户收到推送通知时我不知道如何处理它。
我已经在 plist 文件中列出了我所有的 RSS 源,例如我的 plist 文件的外观:
rss_sources
↓
01
↓
url http://www.newyorkNews.com/rss.xml
title: new york News
↓
02
↓
url http://www.harlemNews.com/rss.xml
title: harlem news
我想做的是,检查标题是否等于推送通知的开头(因为我是发送推送的人,所以我会写下准确的标题),以及如果是这样,它将转到我在代码中设置的某些 index.row。
我在这里提供的东西有可能吗?
如果有另一种方法,我会很高兴听到解决方案,或者一些与我的情况相似的代码模式,这样我就可以从中得到启发。
您所要做的就是为您的有效负载设置一个通用密钥,在您的情况下它看起来像标题。因此,当您发送推送(如 data/payload/json)时,当用户收到推送时,您会交叉引用 valueForKey:
一如既往,我强烈建议您亲自尝试,因为这就是您学习的方式。而且我总是将 Parse 用户引导到他们的文档,因为他们非常 well-documented。如果那是一件事,几乎已经记录在案了。但是,如果您遇到困难,这里有一个工作示例:
使用有效载荷构建推送:
NSDictionary *data = @{
@"alert" : @"some generic message here",
@"badge" : @"Increment",
@"sounds" : @"default",
@"title" : @"NY Times" //this is whatever you want
};
//schedule the push with some options. This isn't a mandatory set up, just an example. You can do a lot with PFPushes
PFPush *push = [[PFPush alloc] init];
[push setChannels:@[ @"subscribed" ]];
[push setData:data];
[push sendPushInBackground];
现在您所要做的就是查看有效负载中密钥标题的值是否符合您的需要:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
. . .
// Extract the notification data from payload
NSDictionary *notificationPayload = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
NSString *newsType = [notificationPayload valueForKey:@"title"];
// perform segue or tab bar selectedIndex or whatever you want after checking if user is launching from notification :
if (notificationPayload) {
//check it title has your string
if ([newsType isEqualToString:@"NY Times"]) {
//do whatever here
} else {
}
}
}
参考资料 - 请自由使用这些资料,他们在向我们提供此 up-to-date 资源方面做得很好
解析iOS推送:https://parse.com/docs/push_guide#top/iOS
解析 SDK https://parse.com/docs/ios/api/
来自 Parse 控制台的推送通知:
{
"aps" : {
"alert" : "New NY Time Article",
"badge" : 1,
"sound" : "default",
"title" : "NY Times"
}
}
使用 Parse,我的推送通知完美运行。 我的应用程序是一个 RSS 新闻提要,我不时发送推送通知,我的问题是当用户收到推送通知时我不知道如何处理它。 我已经在 plist 文件中列出了我所有的 RSS 源,例如我的 plist 文件的外观:
rss_sources
↓
01
↓
url http://www.newyorkNews.com/rss.xml
title: new york News
↓
02
↓
url http://www.harlemNews.com/rss.xml
title: harlem news
我想做的是,检查标题是否等于推送通知的开头(因为我是发送推送的人,所以我会写下准确的标题),以及如果是这样,它将转到我在代码中设置的某些 index.row。 我在这里提供的东西有可能吗? 如果有另一种方法,我会很高兴听到解决方案,或者一些与我的情况相似的代码模式,这样我就可以从中得到启发。
您所要做的就是为您的有效负载设置一个通用密钥,在您的情况下它看起来像标题。因此,当您发送推送(如 data/payload/json)时,当用户收到推送时,您会交叉引用 valueForKey:
一如既往,我强烈建议您亲自尝试,因为这就是您学习的方式。而且我总是将 Parse 用户引导到他们的文档,因为他们非常 well-documented。如果那是一件事,几乎已经记录在案了。但是,如果您遇到困难,这里有一个工作示例:
使用有效载荷构建推送:
NSDictionary *data = @{
@"alert" : @"some generic message here",
@"badge" : @"Increment",
@"sounds" : @"default",
@"title" : @"NY Times" //this is whatever you want
};
//schedule the push with some options. This isn't a mandatory set up, just an example. You can do a lot with PFPushes
PFPush *push = [[PFPush alloc] init];
[push setChannels:@[ @"subscribed" ]];
[push setData:data];
[push sendPushInBackground];
现在您所要做的就是查看有效负载中密钥标题的值是否符合您的需要:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
. . .
// Extract the notification data from payload
NSDictionary *notificationPayload = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
NSString *newsType = [notificationPayload valueForKey:@"title"];
// perform segue or tab bar selectedIndex or whatever you want after checking if user is launching from notification :
if (notificationPayload) {
//check it title has your string
if ([newsType isEqualToString:@"NY Times"]) {
//do whatever here
} else {
}
}
}
参考资料 - 请自由使用这些资料,他们在向我们提供此 up-to-date 资源方面做得很好
解析iOS推送:https://parse.com/docs/push_guide#top/iOS
解析 SDK https://parse.com/docs/ios/api/
来自 Parse 控制台的推送通知:
{
"aps" : {
"alert" : "New NY Time Article",
"badge" : 1,
"sound" : "default",
"title" : "NY Times"
}
}