音楽プレーヤー コントロールを含む iOS 8 のサンプル ウィジェットを実装しようとしています。このアプリは、バックグラウンド オーディオが有効になっている基本的な音楽アプリです。
含まれているアプリを通知する方法を見つけるためにいろいろ調べましたが、何も見つかりませんでした!.
シナリオは基本的に、アプリが一時停止状態にあり、選択した曲/アルバム (特定の曲で一時停止している可能性があります) にあり、再生/停止/次のボタンなどを使用してウィジェットに名前を表示する必要があります。
Apple のドキュメント、および使用シナリオを説明するこのドキュメントに基づいています: https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensibilityPG.pdf
拡張機能は長時間の実行を処理すべきではないと述べており、オーディオ再生は拡張機能の外部で実行する必要があるため、サポートされていないケースとして具体的に述べています。しかし、そのようなシナリオで含まれているアプリをトリガーする方法については言及していませんでした。大きなファイルのダウンロードを処理し、バックグラウンドでアプリをウェイクアップして handleEventsForBackgroundUrlSession を呼び出すことができる NSURLSession 手法と、含まれているアプリと拡張機能の両方が可能な App-Group 共有機能について言及しただけです。共有データ コンテナーにアクセスします。述べられている唯一の実行可能なソリューションは、アプリ全体を強制的にフォアグラウンドにする openURL ソリューションです。
デモ用に 1 つの App-Group をセットアップし、カスタム通知を使用して NSNotificationCenter の呼び出しを試みました。アプリと拡張機能を含むそれぞれで addObserver/postNotificationName を呼び出しましたが、まったく機能しませんでした。代わりに App-Group の NSUserDefaults を変更しようとしましたが、これはアプリの背景を含む場合にも発生しません。
関連する可能性のあるいくつかの質問を次に示しますが、答えが見つかりませんでした: (アプリ拡張機能とコンテナー アプリの間でデータを共有する) --- (アプリがバックグラウンドから再開したときに NSUserDefaultsDidChangeNotification が送信されない) --- (通知を設定する今日の拡張ウィジェットから)
無理かもしれないと思ったのですが、TapTunes というアプリを見つけたところ、拡張機能自体にすべてのコントロールを含む同様の機能を持つウィジェットが最近追加されました。
ありがとう。