我需要从本地通知中打开一个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?
答案 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];
}