Objective-C:从本地通知打开URL

时间:2014-02-10 23:30:25

标签: objective-c ios7 uilocalnotification

我需要从本地通知中打开一个URL。 我通过notification.userInfo传递URL,并通过以下代码检索它:

(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notif {
  NSLog(@"didReceiveLocalNotification");
  NSString *url = [notif.userInfo objectForKey:@"urlMedia"];
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

}

当我点击应用程序打开时,但openURL不起作用。
是否无法使用本地通知打开URL?

1 个答案:

答案 0 :(得分:2)

在尝试打开UIApplication之前,您应先检查以确保UIApplication canOpenURL。这也有助于确定问题所在。如果UIApplication不知道如何处理URL,则返回NO。以下是文档具体说明的内容......

  

返回应用是否可以打开给定的URL资源。   此方法保证,如果调用openURL:,将启动另一个应用程序来处理它。它不保证完整的URL有效。

示例用法:

NSString *urlString = [notif.userInfo objectForKey:@"urlMedia"];
NSURL* url = [NSURL URLWithString:urlString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url];
}