2
我正在使用PhoneGap plugin向Android應用程序發送推送通知。它的工作很好。但問題是,當應用程序打開時,通知不被接收,但如果我關閉應用程序,然後通知進入。當應用程序打開時未收到Android上的推送通知
可能是什麼原因。即使應用程序正在運行,我也希望在系統托盤中發送推送通知。
我正在使用PhoneGap plugin向Android應用程序發送推送通知。它的工作很好。但問題是,當應用程序打開時,通知不被接收,但如果我關閉應用程序,然後通知進入。當應用程序打開時未收到Android上的推送通知
可能是什麼原因。即使應用程序正在運行,我也希望在系統托盤中發送推送通知。
這是設計並遵循常規UI約定。
幸運的是,插件是開源的,你可以改變行爲。
傳入的推送消息由GCMIntentService
處理。
的onMessage()
方法檢查該應用是否在前臺與否:
if (PushPlugin.isInForeground()) {
extras.putBoolean("foreground", true);
PushPlugin.sendExtras(extras);
}
else {
extras.putBoolean("foreground", false);
// Send a notification if there is a message
if (extras.getString("message") != null && extras.getString("message").length() != 0) {
createNotification(context, extras);
}
}
修改if (PushPlugin.isInForeground()) {...}
語句來完成你所需要的。
另一種方法是修改PushPlugin.isInForeground()
本身的代碼。
public static boolean isInForeground()
{
return gForeground;
}
但是請注意更改此代碼的任何不必要的副作用。可能有其他功能取決於此方法(現在和未來)。
見相關職位如何解析接收推送消息一個很好的解釋: