使用PFCloud代码推送通知

时间:2017-02-24 14:49:37

标签: javascript swift parse-platform

我目前正在使用back4app作为我的解析主机。

使用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,但推送未发送到设备。

有人知道我上面的云功能有什么问题吗?

提前致谢

Thomas Richardson

1 个答案:

答案 0 :(得分:1)

我可以检查您在Parse.Push.send()中插入的数据量是否超过了Parse Server基本设置中的预设值。您可以查看他们的Documentation

如果要发送的不仅仅是消息,还可以在数据字典中设置其他字段。有些保留字段具有特殊含义。

  • 提醒 :通知的消息。
  • 徽章 :(仅限iOS)值 在应用程序图标的右上角显示。这可以设置 到一个值或增量,以增加当前值 由1.
  • 声音 :(仅限iOS)应用程序中声音文件的名称 束。
  • 内容可用 :(仅限iOS)如果您正在撰写应用 使用iOS7中引入的远程通知背景模式 (a.k.a.“Background Push”),将此值设置为1以触发a 背景下载。
  • 类别 :(仅限iOS)标识符 此推送通知的UNNotification类别。
  • uri :( Android only)包含URI的可选字段。通知时 打开后,将启动与打开URI相关联的活动。
  • 标题 :(仅限Android)Android系统托盘中显示的值 通知。

这可以改进并且可以添加特定需求,但是,由于您可以查看文档,因此您需要配置应用程序以获取这些设置并处理Cloud Code可以执行的操作。

您可能需要考虑的另一件事是通过调试查询查询结果是否与您希望在后续代码行中使用的内容匹配(添加一些显示查询响应内容的日志应该足够)。