从Today Extension

时间:2015-05-16 20:53:47

标签: ios8 ios8-extension ios8-today-widget

似乎WatchKit是使用ios8中提供的相同扩展机制构建的。

我开始制作今日推广并阅读指南。它表示使用App Groups共享数据,就像WatchKit中的情况一样,但是,与WK不同,它似乎在说你应该:

  • 不假设父应用正在运行
  • 将其唤醒以获取数据

所以我的问题很简单:我错了吗?我想从应用程序中获取一些信息。看起来我可以抓住上下文对象并调用openURL并要求应用程序刷新通道中的数据,然后让我的扩展程序监听更新的通知。但我无法找到任何这样做的例子。

1 个答案:

答案 0 :(得分:1)

在这种情况下,这可能不是你想要的。您可以使用扩展程序上下文打开由包含应用程序处理的URL。但是当你这样做时,父应用程序将出现在前台,你今天的扩展程序将无法显示。如果您想切换到应用程序,那就太棒了,但如果您只想获得一些数据同时保持扩展名可见,那就不好了。

通常的做法是不要向包含应用程序询问数据,而是将数据存储在应用程序和扩展程序都可以直接读取数据的位置。这就是使用应用程序组的重点 - 您将数据保存在组目录中,并且扩展程序会读取它所需的内容。这并不要求包含应用程序正在运行,并且它也不会启动应用程序。

配置应用程序组后,您可以使用-[NSFileManager containerURLForSecurityApplicationGroupIdentifier:]找到该位置。将您的数据放在那里,并且可以使用具有适当组功能的任何应用或扩展程序。