アプリにAPNSを実装しました。しかし、私はそれについて2つの質問があります。
バッジを自己増加させる方法は?私のアプリでは、常に1に設定されています。
アプリがフォアグラウンドにあるときにプッシュ通知が届いた場合、私が知る限り、代替ビューを実装して自分でサウンドを再生する必要があります。この場合、システムのデフォルトの通知音を再生する方法はありますか。つまり、ユーザーが設定で変更すると、自動的に変更されます。
ありがとう。
アプリにAPNSを実装しました。しかし、私はそれについて2つの質問があります。
バッジを自己増加させる方法は?私のアプリでは、常に1に設定されています。
アプリがフォアグラウンドにあるときにプッシュ通知が届いた場合、私が知る限り、代替ビューを実装して自分でサウンドを再生する必要があります。この場合、システムのデフォルトの通知音を再生する方法はありますか。つまり、ユーザーが設定で変更すると、自動的に変更されます。
ありがとう。
wasimで説明したようにバッジ数を増やすことができますが、アプリがフォアグラウンドにある場合にのみ機能するため、正しいバッジ数を表示するには、サーバーが正しいバッジ番号をプッシュする必要があります。
アプリがフォアグラウンドにあるときにデフォルトのシステム通知サウンドを再生するためのAPIはないと思います。そのため、サウンドファイルをバンドルに入れて、通知を受信したときにそのサウンドを再生します。
通常、すべてのアプリで、未読の通知数はサーバーで維持されます。サーバーが特定のデバイスにプッシュ通知を送信すると、トークンサーバーはペイロードとともにバッジカウントを送信します。
サーバーロジックは、適切なバッジ数を追跡し、適切に送信する必要があります。
{
"aps" :
{
"alert" : "Your notification message",
"badge" : badgecount ,
"sound" : "bingbong.aiff"
}
}
AppDelegate.m
次の関数を使用します。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
badge_value+=[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"]intValue];
[UIApplication sharedApplication].applicationIconBadgeNumber = badge_value;
}
ここで、badge_valueは、バッジ値を格納する整数です。