codenameone - Codenameone Android 和 IOS 应用程序未收到来自 Java 服务器的推送通知
问题描述
我一直在从我的 Java 服务器发送推送通知,它工作正常。但由于某种原因,我的应用程序不再接收推送通知。服务器上没有任何变化。codenameone 上是否有一些我应该注意的地方发生了变化?
下面是我使用的相同代码,它基于 codnameone 示例。我在发送推送通知时收到 200 响应,但没有收到实际推送。
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
String cert = ITUNES_DEVELOPMENT_PUSH_CERT;
String pass = ITUNES_DEVELOPMENT_PUSH_CERT_PASSWORD;
if(ITUNES_PRODUCTION_PUSH) {
cert = ITUNES_PRODUCTION_PUSH_CERT;
pass = ITUNES_PRODUCTION_PUSH_CERT_PASSWORD;
}
String query = "token=" + PUSH_TOKEN +
"&device=" + URLEncoder.encode(deviceId1, "UTF-8") +
"&device=" + URLEncoder.encode(deviceId2, "UTF-8") +
"&device=" + URLEncoder.encode(deviceId3, "UTF-8") +
"&type=1" +
"&auth=" + URLEncoder.encode(GCM_SERVER_API_KEY, "UTF-8") +
"&certPassword=" + URLEncoder.encode(pass, "UTF-8") +
"&cert=" + URLEncoder.encode(cert, "UTF-8") +
"&body=" + URLEncoder.encode(MESSAGE_BODY, "UTF-8");
try (OutputStream output = connection.getOutputStream()) {
output.write(query.getBytes("UTF-8"));
}
int c = connection.getResponseCode();```
解决方案
始终返回 200 响应,但也可以通过连接读取 JSON 字符串。你读过它吗?
这是未读取/解析连接结果的文档中的一个遗漏。请参阅此处的“服务器 JSON 响应”部分:https ://www.codenameone.com/manual/push.html
如果 iOS 和 Android 都无法访问,我猜您的订阅账单可能已经过期。
推荐阅读
- ios - 如何使用本地 podspec 项目进行开发
- android - Android Seekbar does not update no matter what I try
- reactjs - React execute script if window width
- django - django updateview 将 request.id 传递给字段
- html - PreviousSibling 不使用 querySelector 返回值
- angular - Angular Nestjs Grapgql 订阅失败
- asp.net-core - 我可以使用 ConcurrentDictionary 执行原子的 try-get-or-add 操作吗?
- c++ - 类型的 C++ 参数与类型的参数不兼容
- pandas - 如何在 matplotlib 或任何相关库中使用饼图/甜甜圈图导出/保存为 pdf
- c# - 类的简化是相似的