2017-08-15 15 views
0

Swift 3を使用してiOS 10用に開発しています。リモートサーバからデータを取得してバックグラウンドでサイレントモードにしたい新しいデータが利用可能になったときに通知をプッシュします。私はリモート通知がおそらくこれを処理するより良い方法だと知っていますが、これをローカルで達成する方法はありますか?特定の時間に、またはユーザーが特定の場所に入力したときに通知をプッシュできますが、通知をプログラムでトリガーできる方法はありますか?iOS 10(Swift 3)で特定の条件が満たされたときにローカル通知をトリガーする

+0

あなたは 'Timer'クラスに見たことがありますか? – Malik

+0

@Malik私はタイマーで通知をトリガーする方法を知っています。新しいデータが特定の時代ではなくサーバーで利用可能になった場合にのみ、それらを起動することです。 – antande

+0

あなたはあなたの質問で、「リモートサーバからのデータを静かにバックグラウンドでフェッチする」ことを明記しました。あなたは「たまに」をどう定義しますか? – Malik

答えて

0

データが到着すると、「UILocalNotification」通知を送信できます。 (プッシュ通知がように、サーバ、証明書...とを含んで...)

を私はお勧め:

a)はADCごとにperformFetchWithCompletionHandler

を使用して:

「良い機会が生じた場合システムは、あなたのアプリをバックグラウンドで起動または起動し、アプリケーションデリゲートのアプリケーション:performFetchWithCompletionHandler:メソッドを呼び出します。このメソッドを使用して新しいコンテンツをチェックし、コンテンツが利用可能であればダウンロード操作を開始します。

b)performFetchWithCompletionHandlerでダウンロードをトリガーします。 NSURLセッションを使用するコードにcompletionHandlerを渡します。

ダウンロードが行われているC)、LOCAL notifcationをトリガし、実行completionHandler iOSのはいつものメモとしてperformFetchWithCompletionHandler」

」であなたを送っていますが、厳密な時間の制約があります。..

の方法(多分シンプルな...)backgroundSessionConfiguration/downloadTaskを使用している。

をコールバックに簡単にローカル通知を送信します。

+0

これは非常に役に立ちます。どうもありがとうございました。このアプローチの唯一の問題は、ユーザーがアプリを終了すると通知を受け取らないことです。 – antande

+0

ローカル通知を使用する方法です。あなたはそれらを追加すると、あなたのアプリは将来覚醒するでしょう。 – ingconti

関連する問題