2016-04-18 7 views
1

ローカル通知があるアプリケーションがあります。そして、たとえアプリがバックグラウンドにあるときでさえ、それらはトリガとすべてのものでうまく動作します。APIコールによるローカル通知

しかし、私はちょうどその通知に静的なテキストを持っています。それをクリックして、アプリケーションで開き、サーバーに呼び出すと、私は必要なコンテンツとコンテンツを取得します。

私がしたいのは、通知がトリガされると、API呼び出しを呼び出してコンテンツを取得することです。ですから、私の通知は代わりに "This is X"のようなものを書くことができ、Xはサーバーからのコンテンツに置き換えられます。

これはiBeaconsと一緒に働いているので、iBeaconの近くに来ると通知が届きます。

答えて

1

だから私は、あなたがdidRangeBeaconsを呼び出して、いくつかのiBeaconマネージャーがあるとします。

func locationManager(manager: CLLocationManager, didRangeBeacons clBeacons: [AnyObject], inRegion region: CLBeaconRegion) { 
    // schedule local notification 
} 

を、あなたがそこにローカル通知をスケジュールします。サーバーコールを最初に行い、完了したらローカル通知をスケジュールするだけです。

あなたはdidEnterRegionが呼び出されるときまで起動する必要があるので、ユーザーはビーコン領域に入るときには、アプリケーションがバックグラウンドであること(あるいは殺された)ことを、覚えておく必要があります。

func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) { 
    // start ranging for beacons 
} 
+0

はい私はdidEnterRegionを持っています、そして、それは私が今通知するところです。しかし、それから、iBeaconのメジャーとマイナーが私のapiコールに必要なものであるかどうかはわかりません。 私は私がdidRangeBeaconsに入ったapi呼び出しをします。 didEnterregionが呼び出され、まだバックグラウンドになっているときに開始することは可能ですか? – LinkToThePast

+1

私はちょうど通知とdidrangebeaconsのそれを置く、それはアプリがバックグラウンドにあったときにもうまくいきました。 – LinkToThePast

0

beginBackgroundTaskWithExpirationHandlerを使用しますバックグラウンドでAPI呼び出しを行います。詳細情報については、このスレッドを参照してください:Proper use of beginBackgroundTaskWithExpirationHandler。このバックグラウンド・タスクでは、API要求を実行して、要求された結果で通知を表示できます。

+0

func doUpdateでは、私は自分のapi呼び出しとそのすべてを持っているはずですか? そしてdidEnterRegionでdoUpdateを呼び出しますか? – LinkToThePast

+0

はい、doUpdate関数は、コードが実行され、通知が送信される場所です。 doUpdateという名前は、デモの目的にすぎません。ただ、didEnterRegion関数内からバックグラウンドロジックを呼び出すことができます。 –

関連する問題