web-dev-qa-db-ja.com

iOSでサイレントローカル通知を送信することは可能ですか

私のアプリウェイクアップサスペンドモードからサイレントリモートサーバーからの通知。このサーバーは "content-available:1"でプッシュ通知を送信し、ジョブを実行します。

今、私はサーバーの助けを借りずにこれをしたいので、silent local通知(アプリから)将来のある時点で(15の後など)を送信します分)、「content-available:1」を設定する方法が見つかりません。つまり、remote通知でできるように、アプリを起動しないlocal通知を受け取ることになります。

私は情報を検索しましたが、見つけることができるのは、インタラクティブな通知の例と、タイトル、本文、アラート、およびトリガーの設定方法(場所、日付などに基づく)だけです。しかしcontent-availableプロパティの設定方法については何もありません。

では、ローカル通知にcontent-availableを設定することは可能ですか?

13
AndaluZ

それは不可能であり、ユーザーの介入は必要ありません。 iOSの一時停止モードからアプリを起動するためのAndroidのAlarmManager種類のソリューションはありません。 iOSでは、リモートプッシュ通知(外部アプリケーションが定期的にプッシュ通知を送信する場合)を除いて、アプリをsuspendedモードから定期的に起動する方法はありません。

2
AndaluZ

ローカル通知でユーザーの介入なしにアプリをウェイクアップすることは実際には不可能だと思います。バックグラウンドフェッチは、ケースの可能な解決策である可能性があります。

application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)

このUIApplicationDelegateメソッドは、バックグラウンドフェッチが発生する可能性があるとiOSが判断したときに呼び出されます。

func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
2
Ellen

ここでは、バックグラウンドフェッチが唯一のソリューションです。

Xamarin docs にいくつかの情報があり、それをうまく説明しています

とにかくPushNotificationsがバックグラウンドフェッチを使用しているように思われるため、タイミングメカニズムが不正確であるにもかかわらず、これは実際には同じルートです。

0
Nick Jones