是否可以立即通过本地通知打开浏览器?

时间:2014-10-20 07:40:36

标签: ios uilocalnotification

我发送了像这样的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时是否可以立即打开浏览器?

1 个答案:

答案 0 :(得分:0)

在iOS 7和之前,您的方法确实是唯一的方法。这是因为UILocalNotification仅用于打开您的应用,即调用AppDelegate方法application:didReceiveLocalNotification:。因此,确实为您执行任何操作的第一个地方就是该方法。

但是,已经引入了iOS 8 交互式通知。这些允许用户在不打开应用程序的情况下执行指定的操作。 enter image description here

在屏幕截图中,您会看到用户刚刚收到通知,现在可以选择对其执行某些操作,而无需实际返回应用程序。您可以找到有关如何实现交互式通知的精彩教程here