[英]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.