質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

3566閲覧

ローカル通知を受けた時のバッジが表示されない

funkyfrea

総合スコア86

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2016/04/10 14:45

###前提・実現したいこと
swiftで日記アプリを作っています。
実現したいことは、アプリがバックグラウンド、もしくはプロセスが終了した状態でローカル通知を受けた時にバッジで1を表示し、ユーザーがアプリを開いたらバッジを消すことです。

###発生している問題・エラーメッセージ
以下でバッジを表示するコードを書いているつもりなのですが、
バックグラウンドの状態で通知が来てもバッジが表示されません。
通知の許可は得ている状態です。

notification.applicationIconBadgeNumber = 1

###該当のソースコード
こちらがLocalNotificationを設定している部分のコードです。

func scheduledLocalNotification(){ //まずは一度通知をキャンセルする UIApplication.sharedApplication().cancelAllLocalNotifications() //通知を設定する let notification:UILocalNotification = UILocalNotification() notification.alertAction = "アプリに戻る" //後で、ランダムにするように設定する。 notification.alertBody = "trimで今日1日を振り返りましょう!" notification.timeZone = NSTimeZone.defaultTimeZone() let realm = try!Realm() let remind = realm.objects(Reminder) let now = NSDate() let calendar = NSCalendar(identifier:NSCalendarIdentifierGregorian) let unit:NSCalendarUnit = [NSCalendarUnit.Year,NSCalendarUnit.Month,NSCalendarUnit.Day,NSCalendarUnit.Hour,NSCalendarUnit.Minute] let nowComps = calendar?.components(unit, fromDate: now) print("realmのデータ\(remind[0].Time)") let remindComps = calendar?.components(unit, fromDate: remind[0].Time!) nowComps?.calendar = calendar nowComps?.hour = (remindComps?.hour)! nowComps?.minute = (remindComps?.minute)! let remindDate = nowComps!.date //設定したreminDateが今よりも前ならば、 if now.compare(remindDate!) != .OrderedAscending{ //設定したリマインドがすでに過ぎていたら、1日加える。 nowComps!.day += 1 } print("リマインドする時間\(remindDate)") notification.fireDate = remindDate! //notification.fireDate = NSDate(timeIntervalSinceNow: 10) notification.soundName = "bgm_gameclear_2.mp3" notification.repeatInterval = .Day notification.applicationIconBadgeNumber = 1 UIApplication.sharedApplication().scheduleLocalNotification(notification)

###試したこと
バッジのつけ方を検索しコードの間違いを考えてみたのですが、発見できませんでした。

よろしくお願いします。

###補足情報(言語/FW/ツール等のバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決しました。

let userNotification:UIUserNotificationType = [UIUserNotificationType.Alert,UIUserNotificationType.Badge,UIUserNotificationType.Sound]

の部分で、Badgeが抜けているという凡ミスでした。
失礼しました。

投稿2016/04/11 09:51

funkyfrea

総合スコア86

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問