2

私は、Urban Airship API を使用してユーザーにプッシュ通知を送信するアプリを構築しています。

アプリは、ユーザーがアプリに追加したイベントの日付を追跡します。これは、プッシュを処理するためのサーバーが配置されていないことを意味します。アプリ自体は、ユーザーがイベントの日時を追加すると、Urban AS でプッシュ通知をスケジュールするだけです。

ユーザーがイベントが発生する前に削除することを決定した場合、Urban AS でスケジュールを解除します。すべてが良いです。ただし、これらの通知は無料ではないため、通知を無効にしているユーザーには通知を送信したくありません:)

Apple のプッシュ通知 API を使用すると、ユーザーが設定でオフにした場合、通知を受け取らないようにすることができます。彼らは、Urban AS が送信するスケジュールされた通知を単純に無視します。これは、帯域幅とお金の無駄です。

ユーザーがアプリの通知を無効にしたかどうかを確認するにはどうすればよいですか?

また、ユーザーが通知をオフにしているかどうかをテストしてから、Urban AS にすべての通知をキャンセルするように指示する以外に選択肢はありません。アプリが実行されるたびに。

これらのシナリオをテストするために、appDelegate にあらゆる種類の条件付きコードを入力する必要がないようにする方法を考えられる人はいますか? たとえば、ユーザーはアプリを最後に実行してからプッシュをオフにしており、前回からプッシュをオンにしています。ユーザーがこの動作を理解できるかどうかも心配です。

このプッシュ/アーバン飛行船のセットアップでのベストプラクティスを少しお願いしているだけだと思います:)ありがとう。

4

1 に答える 1

1

私が見ているように[[UIApplication sharedApplication] enabledRemoteNotificationTypes]、ユーザーがアプリに対して現在有効にしている通知の種類が返されます。

そうでなければ、あなたは正しいです。アプリを起動するたびにこのメソッドを呼び出す必要があり、ユーザーが通知を再度有効にした場合は、以前に削除したすべてのイベントを再スケジュールする必要があります。

アプリのデリゲートをあらゆる種類の条件で埋めるという問題に関しては、すべてのプッシュ関連のものを処理する個別の PushNotificationsController (UIViewController ではなく、単なる NSObject サブクラス) を作成することをお勧めします。

于 2010-03-23T17:18:44.203 に答える