我发送了像这样的LocalNotification:
UILocalNotification *notification = [UILocalNotification new];
notification.alertBody = @"Hello, open me";
notification.userInfo = @{@"TheKey": @"www.stackoverflow.com"};
notification.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];
在AppDelegate中我使用:
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSDictionary *userInfo = notification.userInfo;
NSURL *siteURL = [NSURL URLWithString:[userInfo objectForKey:@"TheKey"]];
[[UIApplication sharedApplication] openURL:siteURL];
}
它会在新的浏览窗口中打开URL,但应用程序需要5-10秒才能执行该操作。打开LocalNotification时是否可以立即打开浏览器?
答案 0 :(得分:0)
在iOS 7和之前,您的方法确实是唯一的方法。这是因为UILocalNotification
仅用于打开您的应用,即调用AppDelegate
方法application:didReceiveLocalNotification:
。因此,确实为您执行任何操作的第一个地方就是该方法。
但是,已经引入了iOS 8 交互式通知。这些允许用户在不打开应用程序的情况下执行指定的操作。
在屏幕截图中,您会看到用户刚刚收到通知,现在可以选择对其执行某些操作,而无需实际返回应用程序。您可以找到有关如何实现交互式通知的精彩教程here!