繁体   English   中英

Codename One发送和显示推送通知

[英]Codename One send & display push notifications

我正在尝试找出如何使用Codename One服务器推送正确的通知。 我想发送基本上看起来像LocalNotifications的通知 - 包括标题,正文,徽章等。

但是在推送服务器的文档中 ,似乎只有一个涉及通知有效负载的字段:

  • 身体 - 信息的主体。

Q1:如何推送(服务器端通过Codename One服务器)并显示(Codename One应用程序)来自服务器的带标题和正文的通知?

我也希望能够在有效负载中发送和接收自定义数据,例如,当从“特定推送通知”打开应用程序时,引用应该在应用程序中打开的某些应用程序内容。

Q2:我可以基本上发送任何通知机构,甚至是我自己的JSON吗?

在Codename One API中有一个回调接口PushCallback ,特别是方法void push(String value) 在将通知有效负载显示为LocalNotification之前,此回调是否完全用于“预处理/解析”通知有效负载?

谢谢。

您可以在Codename One中发送各种类型的推送消息 ,即0,1,2,3,4,5,100和101。

如果您需要标题和正文,请将您的推送类型设置为4并将您的标题和正文分开; 在你的有效载荷。

如果您需要推送一些可用于在后台操作应用程序的隐藏内容,请转到推送类型3 将可见和隐藏的有效负载分开; 隐藏部分是您放置JSON字符串的地方,只是确保vissible message不以{[ php有效负载示例将如下所示:

$vissibleMsg = "Cum ut quia delectus libero hic.";
$jsonString = json_encode(array("action" => "openMainForm", "id" => "1", "message" => $vissibleMsg));

$payload = $vissibleMsg . ";" . $jsonString;

在你的push(String value) ,读取隐藏的JSON内容,如下所示:

@Override
public void push(String value) {
    Display.getInstance().callSerially(() -> {
        if (value.startsWith("{") || value.startsWith("[")) {
            try {
                JSONObject response = new JSONObject(value);

                switch (response.getString("action")) {
                    case "openMainForm":
                        //do whatever you want here
                        break;
                    default:
                        //perform default action here
                        break;
                }
            } catch (JSONException err) {
                Log.e(err);
            }
        }
    });
}

如果您需要隐藏内容和带有标题和正文的可见内容,则必须根据我上面分享的链接分别使用类型2和类型4发送推送两次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM