2016-06-01 13 views
0

私のアプリでサイレントプッシュ通知を使用したいと思います。私は自分のアプリと携帯電話で背景モードを有効にしました。サイレント通知でhttpリクエストを行う

サイレント通知が到着すると、didReceiveRemoteNotificationデリゲートメソッドがコールしています。しかし、私はこの方法ではhttpリクエストを行うことができません。通知が到着すると、私はコンソール上step 1テキストを参照してください

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 
    print("step 1") 
    let request = NSMutableURLRequest(URL: NSURL(string: "url")!) 
    request.HTTPMethod = "POST" 
    let postString = "search=\(username)&me=\(anonId)" 
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) 
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
     data, response, error in 
     print("step 2") 
     if error == nil { 
      let jsonResult: Dictionary = (try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)) as! Dictionary<String, AnyObject> 
      let results = jsonResult["result"] as! [[String: AnyObject]] 
      print(results) 
      for item in results { 

      } 
      completionHandler(UIBackgroundFetchResult.NewData) 
     } 
    } 
} 

:私は、次のコードを使用しています。しかし、私はstep 2のテキストを見ることができません。

この問題を解決するにはどうすればよいですか?

答えて

0

バックグラウンドダウンロードをサポートするURLセッションを設定して使用する必要があります。それを行う方法については、NSURLSessionクラスリファレンスの「背景」を検索してください。

バックグラウンドダウンロードを開始するためにバックグラウンドの時間を尋ねる必要はありません。あなたはそれを行うのに十分な時間が必要です。

+0

少しの例がありますか? –

関連する問題