【发布时间】:2014-10-13 11:07:48
【问题描述】:
我正在尝试实现一个示例 iOS 8 Today 小部件,其中包含一个音乐播放器控件,该应用是一个启用了背景音频的基本音乐应用。
我环顾四周寻找通知包含应用程序的方法,但我没有找到任何方法!。
场景基本上是,应用程序处于暂停状态并在选定的歌曲/专辑上(它可能会在某首歌曲上暂停),然后我需要使用播放/停止/下一步按钮等在小部件上显示名称.
基于 Apple 的文档,以及描述使用场景的文档: https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensibilityPG.pdf
它提到扩展不应该处理任何长时间的执行,并特别指出音频播放是不受支持的情况,因为它需要在扩展之外运行。但它没有提到在这种情况下触发包含应用程序的方法,它只是提到了 NSURLSession 技术,它可以处理大文件下载并在后台唤醒应用程序以调用 handleEventsForBackgroundUrlSession,以及包含应用程序和扩展程序的应用程序组共享功能访问共享数据容器。唯一可行的解决方案是 openURL 解决方案,它将强制将整个应用程序置于前台。
我确实为我的演示设置了一个 App-Group,并尝试使用自定义通知调用 NSNotificationCenter,分别在包含应用程序和扩展程序上调用 addObserver/postNotificationName,但它根本不起作用。我什至尝试更改 App-Group 的 NSUserDefaults ,但这在包含应用程序的背景时也不会触发。
这里有一些可能相关的问题,但我没有在其中找到答案: (Sharing data between app extension and conainer app) --- (NSUserDefaultsDidChangeNotification not sent when app resumes from the background) --- (Set notifications from Today Extension Widget)
我认为这可能不可行,但我刚刚发现了一个名为 TapTunes 的应用,它最近添加了一个具有类似功能的小部件,包括扩展本身中的所有控件。
谢谢。
【问题讨论】:
标签: ios objective-c ios8 ios-app-extension ios-app-group