【发布时间】:2015-02-03 14:17:57
【问题描述】:
我的 App Delegate 中有一段代码通知我的第一个 View Controller 用户想要立即显示某些内容:
- (void)notifyAppWithURL:(NSURL *)url {
if(!url){
return;
}
NSDictionary *dict = [self parseQueryString:[url query]];
NSString *host = [url host];
[self notifyApp:host value:dict[@"id"]];
}
- (void)notifyApp:(NSString *)key value:(NSString *)value {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[NSNotificationCenter defaultCenter] postNotificationName:@"ShowOnLoad" object:nil userInfo:@{
key : value
}];
}
我从didReceiveRemoteNotification 和openURL 委托方法触发。这两个一切正常。
但是,如果应用程序关闭,并且调用此方法:
didFinishLaunchingWithOptions 和我打了同样的电话:
if(launchOptions[UIApplicationLaunchOptionsURLKey]){
[self notifyAppWithURL:launchOptions[UIApplicationLaunchOptionsURLKey]];
}
在里面,然后两个NSNotification 被发送到视图控制器。
两个问题:
如何在我的 App Delegate 中重复调用 notifyAppWithURL 来解决这个问题?
此外,是否有更好、更广泛的解决方案来处理来自用户的多个传入操作(然后触发一些其他操作)?
【问题讨论】:
标签: ios objective-c push-notification appdelegate