最近のiOSではアプリがバックグラウンドに入った時にも処理が実行できるようになっています。しかし通常のMonaca/Cordovaアプリではそういった処理はサポートされていません。

アプリがバックグラウンドに入ってしまっても処理を継続したい、さらに定期的に処理を呼び出したいといった時に使えるのがBackgroundFetch – christocracy/cordova-plugin-background-fetchです。

BackgroundFetchのインストール

インストールは設定メニューのCordovaプラグインの管理から行います。christocracy/cordova-plugin-background-fetchのZipファイルのURLを指定するか、Zipファイルをアップロードするのが良いようです。

インストールが終わったら処理を書くのですが、基本的な構成は次のようになります。

バックグラウンド処理ではありますが、プラグインが読み込まれていないといけないのでdevicereadyのイベント内で設定する必要があります。

サンプル

バックグラウンド処理ではよくありがちな、デバイスの位置情報を取得するというのを書いてみます。今回は筆者がエヴァンジェリストをつとめるニフティクラウド mobile backendにデータを登録するようにしてみました。

なお、プラグインを使っていますのでアプリをビルドした上で試してください。

アプリが前面にある場合はアラートが出ますが、バックグラウンドで処理されている時にはもちろん出ません。

実行してみると、20分の間に5回実行されていたようです。この辺りは仕様はきっちりと決まっているものではなく、だいたいとして割り切る必要があるようです。

BackgroundFetchはiOS限定になってしまいますが、通常のMonacaアプリでは実現できないバックグラウンド処理を実現できます。ぜひ試してみてください。

BackgroundFetch – christocracy/cordova-plugin-background-fetch