2016-06-25 12 views
1

私のアプリでは、FacebookのグラフAPIを使用してデータをダウンロードしています。新しいデータが利用可能になったら通知を表示します。私はデータをダウンロードし、NSUserDefaultsに既に格納されているものと比較して、それが違う場合に通知を表示したい。 didFinishLaunchingWithOptionsでアプリが閉鎖されているときに通知を表示する方法(iOS)

():performFetchWithCompletionHandlerで

UIApplication.sharedApplication().setMinimumBackgroundFetchInterval(30) 

()

私はInfo.plistファイルで、私のappDelegate背景フェッチ許さ

は、私は次のコードを追加しました(これには、取り出したデータが新しいかどうかを確認するコードは含まれていません。単なるテストです)

let url = "https://graph.facebook.com/109315262061/posts?limit=20&fields=id,full_picture,picture,from,shares,attachments,message,object_id,link,created_time,comments.limit(0).summary(true),likes.limit(0).summary(true)&access_token=\(API_KEY)" 

    let task = NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: url)!) { (data, response, error) in 

     if error == nil 
     { 
      dispatch_async(dispatch_get_main_queue(), { 

       do 
       { 
        let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) 

        ids.removeAll() 

        if let items = jsonData["data"] as? [[String:AnyObject]] 
        { 
         for item in items 
         { 
          if let id = item["id"] as? String 
          { 
           ids.append(id) 
          } 
         } 
         if ids.count == 20 
         { 
          print(jsonData) 

          let notification = UILocalNotification() 
          notification.alertBody = "You have new notifications!" 
          notification.alertTitle = "NSITConnect" 
          notification.fireDate = NSDate(timeIntervalSinceNow: 1) 
          UIApplication.sharedApplication().scheduleLocalNotification(notification) 
          UIApplication.sharedApplication().presentLocalNotificationNow(notification) 

          completionHandler(UIBackgroundFetchResult.NewData) 
         } 
        } 
       } 
       catch 
       { 

       } 

      }) 
     } 

    } 
    task.resume() 

ダウンロード操作は正常に実行されますが、通知は表示されません。これをどうすれば解決できますか?また、アプリケーションが強制終了されたときにデータをダウンロードして通知を表示する方法はありますか?私の謝罪もしこれが愚かな質問であれば、私はこのコンセプトをかなり新しくしています!

+0

通知が表示されていない場合は、通知を作成してメッセージを表示するか、カスタムコントローラ/ビューを作成してください。 – ohr

答えて

0

通知が表示されない場合は、アプリが既に開いている場合は、メッセージを表示するアラートを作成するか、カスタムコントローラ/ビューを作成してください。

あなたのアプリが現在アクティブかどうかを確認して、このように通知したり、通知またはアラート/カスタムコントローラを作成したりできます。

application.applicationState == UIApplicationState.Active 
関連する問題