假设一个场景:有 2 个用户用户 A 和用户 B。用户 A 向用户 B 发送推送通知,但当时应用程序在用户 B 的后台。现在的问题是用户 B 没有收到通知,因为应用程序在后台,但是一旦应用程序再次被购买到前台,就会收到通知。有什么方法可以让用户 B 也能在后台状态下获得通知。此外,如果用户在设备的设置应用程序中将应用程序的警报样式配置为“无”,这是否会阻止他在应用程序处于后台时接收通知。?
提前致谢!!
假设一个场景:有 2 个用户用户 A 和用户 B。用户 A 向用户 B 发送推送通知,但当时应用程序在用户 B 的后台。现在的问题是用户 B 没有收到通知,因为应用程序在后台,但是一旦应用程序再次被购买到前台,就会收到通知。有什么方法可以让用户 B 也能在后台状态下获得通知。此外,如果用户在设备的设置应用程序中将应用程序的警报样式配置为“无”,这是否会阻止他在应用程序处于后台时接收通知。?
提前致谢!!
如果用户禁用警报通知,他将不会收到此类警报。否则,即使应用程序未运行,他也会立即收到警报。
我从你的问题中了解到你想在后台模式下收到通知时运行一些代码......
然后在您的 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;
}
这就是推送通知的真正意义所在。如果您允许应用程序向您发送推送通知,即使应用程序在后台,您也会收到它们。我建议您阅读如何发送推送通知。
另一种选择是让应用程序本身显示通知,这仍然可以在应用程序处于后台时完成。
当他们将警报样式设置为无并关闭通知时,他们将不再收到推送通知。但是话又说回来,如果他们不想,他们不应该得到任何东西。
对于你的第二个问题:
如果用户在设备的设置应用程序中将应用程序的警报样式配置为“无”,这是否会阻止他在应用程序处于后台时接收通知?
如果用户已将“无”设置为警报样式,则将收到通知但不显示。但是,用户仍然可以在通知中心看到该推送消息。那就是手机不会在屏幕上显示警报。
现在到您的第一个问题,即使应用程序在后台,当正确实施推送通知时也会收到。