假设一个场景:用户A和用户B有2个用户。用户A向用户B发送推送通知,但此时应用程序位于用户B侧的后台。现在的问题是用户B没有收到通知,因为应用程序处于后台,但是一旦应用程序再次购买到应用程序就会收到通知。有没有办法让用户B也能在后台状态下获得通知。 此外,如果应用程序的警报样式在设备的“设置”应用程序中由用户配置为“无”,这是否会阻止他在应用程序处于后台时收到通知。?
提前致谢!!
答案 0 :(得分:1)
如果用户禁用警报通知,他将不会收到此类警报。 否则,即使应用程序未运行,他也会立即收到警报。
答案 1 :(得分:1)
从您的问题中我了解到,您希望在后台模式下收到通知时运行一些代码...
然后在您的AppDelegate内部,将代码添加到当应用程序处于后台模式时将触发的方法下
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {}
**但请记住最重要的事情**
您的推送通知结构必须包含 content_avialable = 1
示例:
{
aps = {
alert = {
body = "new message";
title = "I";
};
"content_available" = 1;
};
"click_action" = "GOTO_M";
data = {
};
"gcm.message_id" = ;
"google.c.a.e" = 1;
}
答案 2 :(得分:0)
这实际上是推送通知的内容。如果您允许应用向您发送推送通知,即使应用在后台,您也会收到推送通知。我建议你阅读如何发送推送通知。
另一种选择是让应用程序本身显示通知,这仍然可以在应用程序处于后台时完成。
当他们将警报样式设置为无并转动通知时,他们将不再接收推送通知。但话说回来,如果他们不愿意,他们就不应该得到任何东西。
答案 3 :(得分:0)
关于你的第二个问题:
如果用户配置了应用程序的警报样式 设备的“设置”应用中的“无”可能会阻止他进入 当应用在后台时收到通知?
如果用户将“无”设置为“警报样式”,则会收到通知但未显示。但是,用户仍然可以在通知中心中看到该推送消息。那就是手机不会在屏幕上显示警报。
现在回答您的第一个问题,即使应用程序处于后台,也会收到正确实施的推送通知。