【问题标题】:application:openURL:sourceApplication:annotation: not called in app delegate应用程序:openURL:sourceApplication:annotation:未在应用程序委托中调用
【发布时间】:2013-06-30 10:57:59
【问题描述】:

我正在使用 application:openURL:sourceApplication:annotation: 打开扩展名为 .ftl 的文件。这是在我的应用程序的信息属性列表中声明的。

.ftl 文件附加到电子邮件中,触摸时会调用已启动的应用程序。该代码在 IOS 4 中运行良好,但在 IOS 6 中没有调用上述应用程序委托方法。

我的应用程序委托中的代码很简单:

 -(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
 {

     NSLog(@"method is called");

     if (url != nil && [url isFileURL]) {

         [self performSelector:@selector(splashFade) withObject:nil];

         NSLog(@"inside if statement called");

         //Calls singleton to delete existing data, parse and ingest supplied new file data into Coredata:

         [[ContentController sharedInstance] deleteSectorList:(NSURL *)url];

     }
     return YES;
 }

有人知道为什么不再调用此方法吗?

谢谢。

【问题讨论】:

  • 只是确认一下,在 iOS 6 下,您的应用是否出现在附件的“打开方式”菜单中?并选择它启动您的应用程序好吗?只是这个“openURL:”方法没有按预期调用?
  • 其实“打开方式”菜单中出现了图标,但是应用程序并没有启动。如果我 NSLog 的 openURL 方法,它不会被调用。

标签: ios ios6 appdelegate openurl


【解决方案1】:

您必须告诉手机您的应用接受某些文件。为此,您可以转到 info.pList 并在其中添加一个标志。

点击此链接,该链接将涵盖此主题。 https://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Articles/RegisteringtheFileTypesYourAppSupports.html%23//apple_ref/doc/uid/TP40010411-SW1

【讨论】:

  • 您好,感谢您的帖子。我已经编辑了 info.plist 文件,并且该应用程序在 IOS 4 中运行良好。它只是在 IOS 6 上没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2016-12-15
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多