Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代号:One send&;显示推送通知_Java_Android_Ios_Push Notification_Codenameone - Fatal编程技术网

Java 代号:One send&;显示推送通知

Java 代号:One send&;显示推送通知,java,android,ios,push-notification,codenameone,Java,Android,Ios,Push Notification,Codenameone,我试图找出如何使用Codename One服务器推送正确的通知。我想发送通知,基本上看起来像-与标题,身体,徽章等 但是,对于推送服务器,似乎只有一个与通知有效负载相关的字段: 正文消息的正文 Q1:如何推送(服务器端通过代码名一台服务器)并显示(代码名一个应用程序)来自服务器的带有标题和正文的通知? 我也希望能够发送和接收有效负载中的自定义数据,例如,当从特定推送通知“打开”应用程序时,应在应用程序中打开的某些应用程序内容的引用 Q2:我基本上可以作为通知主体发送任何东西,甚至是我自己的J

我试图找出如何使用Codename One服务器推送正确的通知。我想发送通知,基本上看起来像-与标题,身体,徽章等

但是,对于推送服务器,似乎只有一个与通知有效负载相关的字段:

  • 正文消息的正文
Q1:如何推送(服务器端通过代码名一台服务器)并显示(代码名一个应用程序)来自服务器的带有标题和正文的通知?

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

Q2:我基本上可以作为通知主体发送任何东西,甚至是我自己的JSON吗?

在Codename One API中有这个回调接口,特别是方法
void push(字符串值)
。在将通知负载显示为LocalNotification之前,此回调是否完全用于“预处理/解析”通知负载

谢谢

您可以发送不同的代号1,即0、1、2、3、4、5100和101

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

如果您需要使用一些隐藏内容进行推送,您可以使用这些内容在后台操作应用程序,请选择推送类型
3
。使用
分离可见和隐藏的有效载荷。隐藏部分是放置JSON字符串的地方,只需确保
vissible消息
不是以
{
[
开头即可。一个
php
负载示例如下所示:

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

$payload = $vissibleMsg . ";" . $jsonString;
@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);
            }
        }
    });
}
在您的
推送(字符串值)
中,阅读隐藏的JSON内容,如下所示:

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

$payload = $vissibleMsg . ";" . $jsonString;
@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发送推送两次。

我完全忽略了推送通知文档的这一部分。非常感谢你提供的示例。