【问题标题】:Push Notifications with PFCloud Code使用 PFCloud 代码推送通知
【发布时间】:2017-02-24 14:49:36
【问题描述】:

我目前使用 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 被触发,但是推送没有发送到设备。

有人知道我在使用上述云功能时做错了什么吗?

提前致谢

托马斯·理查森

【问题讨论】:

    标签: javascript swift parse-platform


    【解决方案1】:

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

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

    • alert:通知的消息。
    • 徽章:(仅限 iOS)价值 显示在应用程序图标的右上角。这个可以设置 到一个值或增量以增加当前值 1。
    • 声音:(仅限 iOS)应用程序中声音文件的名称 捆。
    • content-available:(仅限 iOS)如果您正在编写应用程序 使用 iOS7 中引入的远程通知后台模式 (又名“后台推送”),将此值设置为 1 以触发 后台下载。
    • 类别:(仅限 iOS) 此推送通知的 UNNotification 类别。
    • uri:(Android only) 一个包含 URI 的可选字段。当通知 打开后,将启动与打开 URI 关联的 Activity。
    • title:(仅限 Android)Android 系统托盘中显示的值 通知。

    这可以改进并且可以添加特定需求,但是,您可以查看文档,您需要配置您的应用以具有这些设置并处理云代码无法处理的内容。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      相关资源
      最近更新 更多