Iphone 获取通知警报正文并将其存储在字符串中
我在如何获取推送通知警报正文方面遇到问题Iphone 获取通知警报正文并将其存储在字符串中,iphone,ios,ipad,Iphone,Ios,Ipad,我在如何获取推送通知警报正文方面遇到问题 - (void)application:(UIApplication*)application didReceiveRemoteNotification: (NSDictionary*)userInfo{ NSLog(@"Received notification: %@", userInfo); } 但是,它返回正确的通知值 我的NSLog 2013-08-06 05:58:29.340 CareProject[4477:907] Recei
- (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?”
我想通过字符串存储它,并将其显示在ViewController.m上的标签上。请帮助我。您可以轻松访问:
[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]
您可以轻松访问:
[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]
从这里开始:
userInfo字典包含aps键,其值是另一个字典。虽然您不需要aps字典中的信息,但可以使用以下键检索其内容:
警报-该值是警报消息的字符串或带有两个键的字典:body和show view。body键的值是包含警报消息的字符串,show view键的值是布尔值。如果show view(显示视图)键的值为false,则不会显示警报的view(查看)按钮。默认设置是显示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
}
}
}
从这里开始:
userInfo字典包含aps键,其值是另一个字典。虽然您不需要aps字典中的信息,但可以使用以下键检索其内容:
警报-该值是警报消息的字符串或带有两个键的字典:body和show view。body键的值是包含警报消息的字符串,show view键的值是布尔值。如果show view(显示视图)键的值为false,则不会显示警报的view(查看)按钮。默认设置是显示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
}
}
}
试试这个:
NSString*alertBody=[[userInfo objectForKey:@"aps"]objectForKey:@"alert"];
试试这个:
NSString*alertBody=[[userInfo objectForKey:@"aps"]objectForKey:@"alert"];
这样地?NSString*str=userInfo[@“警报”];这给了我一个错误。对不起,我打错了。应该是NSString*str=userInfo[@“aps”][@“警报”];我在那条线上仍然有一个错误。“在“NSDictionary*”类型的对象上找不到读取字典元素的预期方法。”。知道原因是什么吗?我把代码放在DidReceiveMemotentification方法上。你说的长手是什么意思?在我最初的回答中,我对键(userInfo[@“aps”)使用字典速记,但因为编译器不知道键“aps”处的userInfo对象是字典,所以失败了。长手(使用objectForKey:)将起作用,因为它会通知编译器项首先是字典。像这样?NSString*str=userInfo[@“alert”];它会给我一个错误。抱歉,我有一个打字错误。应该是NSString*str=userInfo[@“aps”[@“alert”];我在那一行仍然有错误。“在类型为“NSDictionary*”的对象上找不到读取字典元素的预期方法”你知道原因是什么吗?我把代码放在DidReceiveMemotentification方法上。你说的长手是什么意思?在我最初的回答中,我对键(userInfo[@“aps”)使用字典速记,但因为编译器不知道键“aps”处的userInfo对象是字典,所以失败了。长手(使用objectForKey:)将起作用,因为它首先通知编译器项是字典。