タイトルの通り、遠隔通知が来たらテキストで返信できます。ホームボタンを 1 回タップすると http リクエストは正常に機能しますが、アプリが実行されていないときは機能せず、待機します。アプリを起動すると、それも機能します。
// Please work
func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], withResponseInfo responseInfo: [NSObject : AnyObject], completionHandler: () -> Void) {
print(userInfo["personB"])
if identifier == "comment-reply" {
if let response = responseInfo[UIUserNotificationActionResponseTypedTextKey],
responseText = response as? String {
let request = NSMutableURLRequest(URL: NSURL(string: "https://example.com/post-ios.php")!)
request.HTTPMethod = "POST"
let p = "a=123&b=\(responseText)"
request.HTTPBody = p.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request)
task.resume()
}
}
completionHandler()
}
今、必要ですか: -VoIP 証明書、-バックグラウンド セッション構成、-ディスパッチ何か、または -アップロード タスク?
誰でも私を助けることができますか?
アップロード タスクの更新
func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], withResponseInfo responseInfo: [NSObject : AnyObject], completionHandler: () -> Void) {
let id = userInfo["personB"]!
if identifier == "comment-reply" {
if let response = responseInfo[UIUserNotificationActionResponseTypedTextKey],
responseText = response as? String {
let conf = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("replyPost")
let requ = NSMutableURLRequest(URL: NSURL(string: "https://example.com/post-ios.php")!)
requ.HTTPMethod = "POST"
let data = "a=123&b=\(responseText)".dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession(configuration: conf, delegate: self, delegateQueue: NSOperationQueue.mainQueue()).uploadTaskWithRequest(requ, fromData: data!)
task.resume()
}
}
completionHandler()
}
それも機能しません。ハンドラーを追加しますか?