0

私はアラームアプリケーションに取り組んでいます。アプリがバックグラウンドにある場合、ローカル通知は、アラームが鳴って音を鳴らしていることをユーザーに通知します。ただし、アプリがすでにフォアグラウンドにある場合は、通知音ではなくカスタム音を再生します。通知音を消す方法が見つからないため、両方の音が同時に再生されます。何か案は?

更新:デバイスを再起動すると、問題が解決しました。おそらくiOSのバグです。

4

1 に答える 1

3

アプリが開いていてフォアグラウンドで実行されている場合、デフォルトの動作では、サウンドは再生されず、ユーザーはOSからアラート/バナーを受信しません。次のメソッド(AppDelegateであるクラス内)を介して通知を受け取ることができます。

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    NSLog(@"Do something");
}

そして、そこから他のメソッドをトリガーできます。

UILocalNotificationのドキュメントから:

システムが通知を配信するときにアプリケーションが最優先で表示されている場合、アラートは表示されず、アイコンにはバッジが付けられておらず、音も再生されません。ただし、application:didReceiveLocalNotification:は、アプリケーションデリゲートが実装した場合に呼び出されます。UILocalNotificationインスタンスはこのメソッドに渡され、デリゲートはそのプロパティを確認したり、userInfoディクショナリのカスタムデータにアクセスしたりできます。

于 2012-08-05T12:14:01.350 に答える