我在GCM上发了一条消息,因为我看到在Android Studio Console上登录,它就会到达我的设备。
从我的服务器发出的消息格式为:
{
"aps": {
"alert": {
"title": "Alert Title",
"body": "Alert body with detailed description."
},
"content-available": false
},
"data": {
"title": "custom",
"user-id": "123",
"user-age": "44",
"parameters": [{
"parameter": "1"
}]
}
}
我在iOS上有一个非常相似的东西,通知操作系统处理通知的显示,然后当用户点击通知时,我会调用一个方法进行进一步处理,即我使用'数据& #39;键。
QByteArray* qbyte;
QThread* thread;
PlayAudio* audioWorker;
MainWindow::startSound()
{
QFile soundFile;
soundFile.setFileName("/home/sounds/sound.wav");
qbyte = new QByteArray(soundFile.readAll());
soundFile.close();
thread= new QThread;
audioWorker= new PlayAudio(qbyte, 5);
audioWorker->moveToThread(thread);
connect(thread, SIGNAL(started()), audioWorker, SLOT(play()));
connect(audioWorker, SIGNAL(finished()), thread, SLOT(quit()));
connect(audioWorker, SIGNAL(finished()), audioWorker,SLOT(deleteLater()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
connect(thread, SIGNAL(finished()), this, SLOT(donePlaying()));
}
MainWindow::donePlaying()
{
//do stuff
}
我的理解,也许是错误的,如果我包含“通知”,键入我的消息然后Android将在系统托盘中显示通知;就像在iOS上一样,如果您包含“警报”,操作系统会显示通知。键。
我说错了吗?
答案 0 :(得分:0)
当应用在后台时,通知消息将传递到通知托盘。对于前台的应用程序,消息由这些回调处理,如果是android
,则为onMessageReceived()
如果您是应用程序在前台,您需要处理通知的显示,操作系统将仅在应用程序处于后台时显示通知。有关详细信息,请参阅official documentation。