私のアプリでは、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()
ダウンロード操作は正常に実行されますが、通知は表示されません。これをどうすれば解決できますか?また、アプリケーションが強制終了されたときにデータをダウンロードして通知を表示する方法はありますか?私の謝罪もしこれが愚かな質問であれば、私はこのコンセプトをかなり新しくしています!
通知が表示されていない場合は、通知を作成してメッセージを表示するか、カスタムコントローラ/ビューを作成してください。 – ohr