2017-02-24 5 views
0

私は現在、解析ホストとしてback4appを使用しています。PFCloudコードによるプッシュ通知

Parse.Cloud.afterSaveを使用しているときに、プッシュ通知が必要なデバイスに正しく送信されました。だから私はサーバーのセットアップの問題を排除することができます。

行が削除されたときにも検出したいと思い、Parse.Cloud.beforeDelete関数を使用してこれを行うことができます。

マイParse.Cloud.beforeDelete関数は、次の

Parse.Cloud.beforeDelete("CallSession", function(request, response) { 
    query = new Parse.Query("CallSession"); 
    query.equalTo("callerID", request.object.get('callerID')); 

    var recieverID = request.object.get('receiverID'); 
    var sessionID = request.object.get('sessionID'); 
    var subscriberToken = request.object.get('subscriberToken'); 
    var publisherToken = request.object.get('publisherToken'); 
    var callerTitle = request.object.get('callerTitle'); 
    var callerImageURL = request.object.get('callerImageURL'); 
    var isVideoCall = request.object.get('isVideo'); 
    var pushID = request.object.get('pushID'); 
    var callerID = request.object.get('callerID'); 

    var callerObjectID = request.object.get('callerObjectId'); 
    var publicFigureObjectID = request.object.get('publicFigureObjectId'); 


    Parse.Push.send({ 
     where: query, // Set our Installation query 
     data: { 
      "content-available" : 1, 
      "sessionID" : sessionID, 
      "subscriberToken" : subscriberToken, 
      "publisherToken" : publisherToken, 
      "callerTitle" : callerTitle, 
      "callerID" : callerID, 
      "callerObjectId" : callerObjectID, 
      "publicFigureObjectId" : publicFigureObjectID, 
      "callerImageURL" : callerImageURL, 
      "isVideo" : isVideoCall, 
      "pushID" : "endCall" 

     } 
    },{success: function() { 
     return response.success('endcall Sent OK'); 
    }, 
     error: function(error) { 

      console.log('Push AfterSave Error = ' + error); 

      return response.success(error); 
     }, 
     useMasterKey: true 

    }); 
    }); 

サーバーのログがbeforeDeleteしかしプッシュがデバイスに送信されていないトリガされていることを示しているように見えます。

上記のクラウド機能で何が間違っているのか分かりませんか?私はあなたがParse.Push.send()内に挿入しているデータの量を確認することができるものについては、事前

トーマス・リチャードソン

答えて

1

おかげで解析サーバーの基本的な設定からプリセットを超えます。チェックインできるようにDocumentation

メッセージを送信するだけではなく、データ辞書に他のフィールドを設定することができます。特別な意味を持ついくつかの予約フィールドがあります。

  • 警告:通知のメッセージ。
  • バッジ:(iOSのみ)値 は、アプリアイコンの右上に示されています。これは、値に を設定することができたり、音
  • 1で現在の値 をインクリメントするために、インクリメントする:(iOS版のみ)アプリケーション バンドル内のサウンドファイルの名前。
  • コンテンツ利用可能:(iOS版のみ)あなたはiOS7 (別名「背景プッシュ」)で導入されたリモート通知のバックグラウンドモードを使用してアプリ を書いている場合は、 をトリガするためにこの値を1に設定しますバックグラウンドダウンロード。
  • カテゴリ:(iOSのみ)このプッシュ通知の UNNotificationカテゴリの識別子。
  • uri:(Android のみ)URIを含むオプションのフィールド。通知 が開かれると、URIのオープンに関連するアクティビティが開始されます。
  • タイトル:(Androidのみ)Androidシステムトレイに表示される値 通知。

これを改善することができますが、ドキュメントを確認するには、アプリケーションを設定してクラウドコードが処理できないように設定する必要があります。

もう1つのことは、クエリの結果がデバッグすることによって、後続のコード行で使用したいものと一致するかどうかを確認することです(クエリ応答の内容を示すログを追加するだけで十分です) 。