我写了一个小的快速应用程序。我已成功配置远程通知服务。这是代码
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
println("received notification")
var remoteServer = RemoteServer()
remoteServer.sendDataToServer { (success) -> () in
completionHandler(UIBackgroundFetchResult.NewData)
}
}
现在,我正在使用Houston ruby gem发送通知。看起来像这样
require 'houston'
APN = Houston::Client.production
APN.certificate = File.read("production_certificate.pem")
token = "token here"
notification = Houston::Notification.new(device: token)
notification.content_available = true
notification.alert = "test"
notification.badge = 0
APN.push(notification)
我可以在锁定屏幕上成功查看该消息。但是当我滑动通知时,它会打开应用程序,这就是didReceiveRemoteNotification
方法被调用的时候。
我想知道是否有办法在用户不必刷卡通知的情况下关闭didReceiveRemoteNotification
? (几乎不需要用户活动)?
我尝试将警报设置为nil。但是,由于无法检测到任何用户活动,didReceiveRemoteNotification
永远不会被解雇。
我该如何处理这种情况?我应该使用performFetchWithCompletionHandler
,但是如何从远程服务器启动它?
更新:当应用程序当前打开时,didReceiveRemoteNotification
确实会被发送出去,但一旦设备被锁定,它就会被发送出去。同样没有被召唤。
由于