我对如何获取推送通知警报正文有疑问。
- (void)application:(UIApplication*)application didReceiveRemoteNotification: (NSDictionary*)userInfo{
NSLog(@"Received notification: %@", userInfo);
}
但是,它会返回正确的通知值。
我的NSLog
2013-08-06 05:58:29.340 CareProject[4477:907] Received notification: {
aps = {
alert = "Are you available to visit Facility 1?";
badge = 1;
sound = default;
};
}
我不知道如何获得警报体。 “您可以参观设施1吗?” 我想通过String存储它并将其显示在我的ViewController.m上的标签上。请帮帮我。
答案 0 :(得分:3)
您可以轻松访问:
[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]
答案 1 :(得分:1)
从这里开始:iOS Developer Lib
userInfo字典包含 aps键,其值是另一个字典。虽然您不需要aps字典中的信息,但可以使用以下键检索其内容:
警告 - 该值可以是警报消息的字符串,也可以是包含两个键的字典:body和show-view。正文键的值是包含警报消息的字符串,show-view键的值是布尔值。如果show-view键的值为false,则不显示警报的View按钮。默认设置是显示“查看”按钮,如果用户点击该按钮,则启动应用程序。
所以,基本上,你需要:
NSDictionary *apsDict = [userInfo objectForKey:@"aps"];
if (apsDict != nil) {
id alertObj = [apsDict objectForKey:@"alert"];
if ([alertObj isKindOfClass:[NSString class]] == YES) {
NSString *alert = alertObj;
if ([alert length] > 0) {
// use alert as NSString
}
}
}
答案 2 :(得分:1)
试试这个:
NSString*alertBody=[[userInfo objectForKey:@"aps"]objectForKey:@"alert"];