当应用处于背景时,我能够在系统托盘中看到通知。
但是,即使应用程序位于前景,我也希望通知在系统托盘中可见。
我在Android上尝试了以下内容:
https://fcm.googleapis.com/fcm/send
data
和[{1}}付费点击notification
向 XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setSocketFactory(SocketFactory.getDefault())
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setServiceName("123.456.0.854")//service name
.setHost("123.456.0.854") // host name
.setPort(5222) //port
.setUsernameAndPassword("phone", "admin")
.setConnectTimeout(40000)
.setCompressionEnabled(false).build();
connection = new XMPPTCPConnection(config);
try {
connection.connect();
connection.login("phone", "admin");
Presence presence = new Presence(Presence.Type.available);
presence.setStatus("Available");
try {
connection.sendStanza(presence);
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XMPPException e) {
e.printStackTrace();
}
OfflineMessageManager offlineMessageManager = new OfflineMessageManager(connection);
try {
System.out.println("Count is " +offlineMessageManager.getMessageCount());
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
}
}.start();
发送帖子请求:同样,我只能在应用时看到系统托盘中的通知在背景中。这here提及:
包含通知和数据有效负载的消息,包括背景和 前景。在这种情况下,通知将传递给 设备的系统托盘,数据有效负载在附加功能中提供 您的启动器活动的意图。
我错过了什么?
我使用Android和Cordova / Ionic。
答案 0 :(得分:0)
如果您希望在应用位于前台时显示通知,则必须发送带有数据有效负载的消息,然后编写代码以在您的应用中处理该消息,如下所述您引用的文档。
当您发送带有通知有效负载的邮件时,FCM的工作方式与您所描述的完全相同。当应用程序在后台时,它会显示通知。在前台时,它不会。
请注意,数据和通知有效负载的行为有所不同,如documentation中所述。
答案 1 :(得分:0)
在前台,您可以使用本地通知:
答案 2 :(得分:0)
这是Unity问题,但我认为FCM核心是相同的。
Showing FCM push notification in tray when app is in foreground
答案是
您必须手动将其重定向到本地通知