Ios 如何处理和发送远程通知Objective-C
我有一些问题想了很久了。我希望在这里得到答案 1) 我有许多推送通知发送到设备,具体取决于设备上发生的情况。每个推送通知都可用于不同的ViewController。通过这种方式,我的意思是推送通知与ViewController需要使用的一些自定义数据一起接收。 那么,为了便于共享通知中的数据,最好的设置方法是什么 2) 正如我前面所说,我有不同类型的通知。我现在这样做是为了让我知道如何处理每个通知,我发送它们的方式如下:Ios 如何处理和发送远程通知Objective-C,ios,objective-c,iphone,notifications,push-notification,Ios,Objective C,Iphone,Notifications,Push Notification,我有一些问题想了很久了。我希望在这里得到答案 1) 我有许多推送通知发送到设备,具体取决于设备上发生的情况。每个推送通知都可用于不同的ViewController。通过这种方式,我的意思是推送通知与ViewController需要使用的一些自定义数据一起接收。 那么,为了便于共享通知中的数据,最好的设置方法是什么 2) 正如我前面所说,我有不同类型的通知。我现在这样做是为了让我知道如何处理每个通知,我发送它们的方式如下: data: { type: "4", some
data: {
type: "4",
some other data....
}
因此,每次收到通知时,我都会使用if语句来检查它是什么类型的。这是一种合法/正确的方法还是有其他方法
我希望您能提供一些代码示例,特别是问题1
谢谢 -(void)application:(UIApplication*)application didReceiveMemotentification:(NSDictionary*)userInfo
是您将条件放入的位置。
userInfo字典是存储通知信息的地方。
例如,要获取您喜欢的类型,请执行以下操作:
if([userInfo[@"aps"][@"type"] isEqualToString:@"4"])
{
//your custom code here
}
现在,当您收到远程通知时,您将希望发送本地通知,如下所示:
[[NSNotificationCenter defaultCenter] postNotificationName:@"yourMessage" object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"yourMessage" object:nil];
然后在视图控制器中添加:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(yourCustomMethod) name:@"yourMessage" object:nil];
不要忘记在您的视图中注销本地通知将消失:
方法如下:
[[NSNotificationCenter defaultCenter] postNotificationName:@"yourMessage" object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"yourMessage" object:nil];
希望这能有所帮助,如果不清楚,请告诉我。有些问题很清楚。我应该将addObserver放在ViewDidDisplay或will Display right?中?。还有第二个问题。假设我在Viewcontroller A中,我收到一个通知,该通知的类型将在Viewcontroller B中使用。如果我说为Viewcontroller B设置一些属性值,它还会得到处理吗?您必须将其放入Viewcontroller B中。因为您正在实现removeObserver:只有当前的ViewController将获得本地通知。因此,如果您在ViewController A中,并且收到一个针对ViewController B的通知,则不会发生任何事情。如果不希望出现这种行为,请不要实现removeObserver:方法,但仍然应该初始化ViewController B以使其能够处理通知。是否有方法从ViewController a开始对其进行初始化?您可以使用InstanceDeviceController WithiIdentifier:方法谢谢,我将努力实现这一点!