サイレントプッシュ通知を行い際には contentAvailable を有効にして送ります。その際、単にそれだけを付けるとエラーになってしまいます。以下はJavaScript SDKを使った場合のコードです。
var push = new ncmb.Push(); push .set("immediateDeliveryFlag", true) .set("message", 'プッシュ通知のテスト') .set("target", ["ios"]) .set("contentAvailable", true) .send() .then(function(push){ console.log('送信完了'); }) .catch(function(err) { // エラー console.log(err.error); });
この時のエラーメッセージは {"code":"E400008","error":"Either badgeIncrementFlag or contentAvailable or badgeSetting."}
になります。or が複数あって分かりづらいのですが、 contentAvailable を有効にした場合には badgeIncrementFlag を付けてあげるとエラーにならなくなります。
var push = new ncmb.Push(); push .set("immediateDeliveryFlag", true) .set("message", 'プッシュ通知のテスト') .set("target", ["ios"]) .set("contentAvailable", true) .set('badgeIncrementFlag', false) // 追加 .send() .then(function(push){ console.log('送信完了'); }) .catch(function(err) { // エラー console.log(err.error); });
サイレントプッシュ通知を使う際にはこの点に注意してお使いください。