2017-02-20 9 views
0

iOSアプリケーションでサービスからデータをプルすることは可能ですか(たとえばwww.mysite.com/iphone/notifications)、JSONのようなものが生成されます。 ):サービスから一定期間データを取り出して通知センターに表示

[ 
    { 
     "Message":"Notification 1", 
     "Detail":"Notification 1 detail" 
    }, 
    { 
     "Message":"Notification 1", 
     "Detail":"Notification 1 detail" 
    } 
] 

アプリは何らかのバックグラウンドワーカーを登録し、x分ごとに通知をプルします。

このコンセプトは可能ですか?Apple Push Notification Serviceを通過する必要がありますか?

答えて

0

Appleが「バックグラウンドフェッチ」と呼んでいるのはあなたの説明です。

iOSがデリゲートのperformFetchWithCompletionHandlerメソッドを呼び出すと、アプリに通知が届きます。あなたのサービスに電話をかけ、新しい情報で何かをすることはあなた次第です。この時点でローカル通知を作成することができます。

iOSがあなたのデリゲートメソッドを呼び出す頻度は定義されていませんが、アプリケーションが使用されているかどうか、アプリがどれくらい早く完了したか、新しいデータがダウンロードされたかどうかを正確に報告するない。コンテンツの

リンクApple documentation

の取得に少量定期的に目を覚ますためにシステムを依頼することができ、新しいコンテンツをチェックするために必要な日和見

アプリ彼らはフェッチ操作を開始できるように、そのコンテンツのために。このモードをサポートするには、XcodeプロジェクトのCapabilitiesタブのBackground modesセクションからBackground fetchオプションを有効にします。 (このサポートを有効にするには、アプリのInfo.plistファイルにfetch値を指定したUIBackgroundModesキーを含めることもできます)。このモードを有効にすることは、アプリがバックグラウンドフェッチを実行するためにシステムにいつでも与えることを保証するものではありません。システムは、コンテンツを他のアプリやシステム自体のニーズに合わせるためにアプリのニーズをバランスさせる必要があります。その情報を評価した後、システムは良い機会があるときにアプリに時間を与えます。

システムが起動すると、アプリがバックグラウンドで起動または起動され、アプリケーションデリゲートのアプリケーション:performFetchWithCompletionHandler:メソッドが呼び出されます。この方法を使用して、新しいコンテンツを確認し、コンテンツが利用可能であればダウンロード操作を開始します。新しいコンテンツのダウンロードが完了したらすぐに、提供された完了ハンドラブロックを実行し、コンテンツが利用可能かどうかを示す結果を渡す必要があります。このブロックを実行すると、アプリを一時停止状態に戻して電力使用量を評価できることがシステムに伝えられます。少量のコンテンツをすばやくダウンロードし、ダウンロード可能なコンテンツを正確に反映しているアプリは、コンテンツのダウンロードに時間がかかったり、コンテンツが利用可能だったものの、今後実行時間がかかる可能性が高くなります何もダウンロードしない。

関連する問題