2016-05-22 2 views
1

昨年私のiOSプロジェクトのローカル通知が脇に置かれていましたが、数週間前に戻ってきたときにもう機能しなくなっていました。私は数日ぐらい掘り下げてしまいました。私は完全に困惑しています。バッジはまだバックグラウンドフェッチで正しく更新されますが、通知アラートは送信されません。ここで私がテストするための最小限のセットアップがあります。ローカルの通知が機能しなくなった理由を把握できません

AppDelegate:私が試した

func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 
    application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum) 
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge, .Alert], categories: nil)) 

    return true 
}  

func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {  
    let localNotification = UILocalNotification() 
    localNotification.alertAction = "Message" 
    application.presentLocalNotificationNow(localNotification) 

    completionHandler(.NoData) 
} 

もの:

  • のアンインストール/アプリ(デバイスとシミュレータ)
  • バンドル識別子
  • 無効化/再有効化を変更し再インストールバックグラウンドフェッチ機能
  • 現在、fireDate a ttribute
  • しようとしましたwillFinishLaunchingWithOptionsとdidFinishLaunchingWithOptions
  • 私はそれをデバッグし、私は背景がフェッチとpresentLocalNotificationNowが

セットアップと呼ばれていることをシミュレートしたときにperformFetchWithCompletionHandlerが実行されることを100%確信していました:Xcodeの7.3

  • .1(以前のリリースではおそらく6.xxで開始)
  • Swift 2.2(2.1でプロジェクトを開始し、機能していた)
  • のiOS 9(8上でプロジェクトを開始し、機能的であった)

は、私は逃したAPIで何か変化がなかった、またはいくつかのエラーは、私がやっているものの中にあるのでしょうか?助けてくれてありがとう!

+0

はこれを試してください: 'mySettingsてみましょう:UIUserNotificationSettingsの=のUIUserNotificationSettings(forTypes:[.Alert、.Badge]、カテゴリ:?ゼロとして設定) UIApplication.sharedApplication()。 registerUserNotificationSettings(mySettings) ' – satishiOS25

+0

' catは? Set 'はエラーを返しますが、代わりに' Set () 'を試しましたが、どちらも動作しませんでした –

+0

ええ、' categories:nil'は上記のコメントチェックを編集しました – satishiOS25

答えて

0

UILocalNotificationでは、表示するためにalertBodyが設定されている必要があります。したがって、次の作品を持つ:

func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {  
    let localNotification = UILocalNotification() 
    localNotification.alertBody = "You have a notification" 
    localNotification.alertAction = "Message" 
    application.presentLocalNotificationNow(localNotification) 

    completionHandler(.NoData) 
} 
関連する問題