gpt4 book ai didi

ios - 应用程序关闭时如何显示通知(iOS)?

转载 作者:行者123 更新时间:2023-11-28 08:35:00 25 4
gpt4 key购买 nike

在我的应用程序中,我正在使用 Facebook 图形 API 下载数据,并希望在新数据可用时显示通知。我想下载数据,将其与 NSUserDefaults 中已存储的数据进行比较,如果不同则显示通知。

我在 info.plist 文件和我的 appDelegate 中允许后台获取,我添加了以下代码:

在 didFinishLaunchingWithOptions() 中:

    UIApplication.sharedApplication().setMinimumBackgroundFetchInterval(30)

在 performFetchWithCompletionHandler() 中

(这里不包括检查获取的数据是否为新数据的代码,这只是一个测试)

    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()

下载操作成功,但我没有看到通知。我怎样才能解决这个问题?另外有没有办法在应用程序被强制关闭时下载数据然后显示通知?如果这是一个愚蠢的问题,我很抱歉,我对这个概念还很陌生!

最佳答案

如果应用已经打开,则不会显示通知,请尝试创建一个提醒来显示您的消息,或者创建一个自定义 Controller / View 。

您可以像这样检查您的应用当前是否处于事件状态,然后创建通知或警报/自定义 Controller 。

application.applicationState == UIApplicationState.Active

关于ios - 应用程序关闭时如何显示通知(iOS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38029645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com