Worklight:推送通知消息长度&格式 - 限制

时间:2013-05-30 09:29:45

标签: ios apple-push-notifications ibm-mobilefirst payload

通过Worklight发送推送通知时,我面临以下问题。

  1. 推送消息长度非常有限 - 大约65个字符
  2. 在设备上收到的有效负载消息已删除所有间距
  3. 就像我发送了“这是测试消息”,但在设备上收到的是“ Thisisatestmessage

    现在,特别是在工作光中推送消息的大小有限,我知道苹果说256字节。但是Worklight允许什么?

    以及为什么有效负载正在删除空格。即使我从后端java服务发送消息

    我的推送适配器:

    function generalNotification(userId, msgTitle, MsgContents, org, logo){
        var userSubscription = WL.Server.getUserNotificationSubscription('aahadPushAdapter.GeneralPushSource', userId);
        if (userSubscription==null){
            return { result: "No subscription found for user :: " + userId };
        }
        WL.Logger.debug("Sending Push >> userId:: " + userId + ", Message:: " + MsgContents);
        WL.Server.notifyAllDevices(userSubscription, {
            badge: 1,
            sound: "sound.mp3",
            activateButtonLabel: "Read",
            alert: msgTitle,
            payload: {
                msg : MsgContents,o:org,l:logo
            }
        });
        return { result: "Notification sent to user :: " + userId };
    }
    

    我的后端Java代码

    DataAccessService service = WorklightBundles.getInstance().getDataAccessService();
    String parm = "['" + userID + "','"+ msgTitle + "','"+ msgContents+ "','"+org + "','"+logo +"']";
    ProcedureQName pushMethod = new ProcedureQName("aahadPushAdapter","transNotification");
    InvocationResult results = service.invokeProcedure(pushMethod, parm);
    jsonObj = results.toJSON();
    msg = "Push Sent successfully to " + userID + " " + (String)jsonObj.get("");
    

    请检查此代码并建议,如果此处缺少某些内容?

    感谢

2 个答案:

答案 0 :(得分:0)

  1. Push Notifications sample application provided in the IBM Worklight Getting Started training material中是否也会发生空格剥离?因为对我来说,它没有。

    如果仅在您的应用程序中发生,则需要了解您处理邮件的方式。

  2. 正如我在其他地方的评论中提到的那样,Worklight没有任何限制 - 每个PNS(APNS,MSPN,GCM)都有其自身的限制。

  3. 256个字节不仅用于有效载荷的消息部分,而且用于整个有效载荷,因此对于消息部分而言,剩下的只有65个字符,但同样,这不在Worklight的控制。

    我自己还没有这样做,但你可以开始剥离有效载荷,看看它何时失败,这将是你从Worklight的角度来看的最小有效载荷。

    这个信息原则上并不长。

    另一种可能增加消息中传递内容的方法(在有效负载的剩余大小中)是使用别名以便传递更少的信息,从而为消息留出更多空间。

答案 1 :(得分:0)

APNS有效载荷中的空间剥离似乎是一个缺陷。我在我的应用程序中看到了相同的行为,并且能够在入门材料中重现它。作为一种解决方法,我将“_”作为空格的占位符放在有效负载中,然后在worklight客户端中删除它们。