gpt4 book ai didi

java - Codename One 发送和显示推送通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:09 33 4
gpt4 key购买 nike

我正在尝试了解如何使用 Codename One 服务器推送正确的通知。我想发送基本上看起来像 LocalNotifications 的通知- 带有标题、正文、角标(Badge)等。

然而在documentation对于推送服务器,似乎只有一个字段涉及通知负载:

  • body - 消息的正文。

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

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

问题 2:我可以发送基本上任何东西作为通知正文,甚至是我自己的 JSON 吗?

在Codename One API中有这个回调接口(interface)PushCallback ,特别是方法 void push(String value)。此回调是否正是为了在将通知有效负载显示为 LocalNotification 之前对其进行“预处理/解析”?

谢谢。

最佳答案

有各种types of push messages您可以发送代号一,即 0、1、2、3、4、5、100 和 101。

如果您需要标题和正文,请将您的推送类型设置为4 并使用; 分隔您的标题和正文 在您的有效负载中。

如果您需要推送一些可用于在后台操作您的应用程序的隐藏内容,请选择推送类型 3。使用 ; 分隔可见和隐藏的有效负载。隐藏部分是您放置 JSON 字符串的地方,只需确保 visible 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 发送两次推送。

关于java - Codename One 发送和显示推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43069883/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com