使用iOS 8交互式推送通知调用Web服务

时间:2015-08-13 09:35:01

标签: ios swift push-notification

我正在尝试在我的应用中实现交互式推送通知。该应用已成功收到通知。

收到通知后,我在锁定屏幕上有两个按钮。它们都应该启动两个Web服务

以下是application handleActionWithIdentifier

中的代码
    func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], completionHandler: () -> Void) {


    let aps = userInfo["aps"] as NSDictionary
    let id = aps["id"] as Int
    let notification = Notifications()
    notification.notificationId = NSNumber(integer: id)

    if identifier == "APPROVE"{
        APIManager.sharedInstance.approveApprovalRequest(notification)
    }
    else if identifier == "DELETE"{
        APIManager.sharedInstance.dismissBulletin(notification)
    }
    completionHandler()
}

我用过

 NSURLSession.sharedSession().dataTaskWithRequest(request, 
    completionHandler: { (data, response, error) -> Void in}).resume()

用于网络服务电话。

但它会返回连接错误。

我该如何解决这个问题。任何帮助表示赞赏。

编辑:

这是我在日志中收到的错误

Error Domain=NSPOSIXErrorDomain Code=9 "The operation couldn’t be completed.Bad file descriptor"

UserInfo=0x1552ca00 {_kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=9}

2 个答案:

答案 0 :(得分:2)

这对我有用。

let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error: error)

答案 1 :(得分:1)

如果你打开了背景模式,你可以在功能中执行此操作并选择远程通知。

<强>更新 在多任务处理和网络连接中,如果应用程序被挂起并且回收套接字,则可以获得EBADF错误了解有关此here的更多信息

  

注意:当您的应用程序恢复执行时,故意未在此处指定已回收资源的套接字返回的实际错误,以便将来进行细化。但是,在许多情况下,错误将是EBADF,这可能不是您所期望的!在正常情况下,EBADF意味着应用程序已将无效的文件描述符传递给系统调用。但是,对于已回收资源的套接字,并不意味着文件描述符无效,只是套接字不再可用。

提示:检查1366 n)

的实施情况