1

假设一个场景:有 2 个用户用户 A 和用户 B。用户 A 向用户 B 发送推送通知,但当时应用程序在用户 B 的后台。现在的问题是用户 B 没有收到通知,因为应用程序在后台,但是一旦应用程序再次被购买到前台,就会收到通知。有什么方法可以让用户 B 也能在后台状态下获得通知。此外,如果用户在设备的设置应用程序中将应用程序的警报样式配置为“无”,这是否会阻止他在应用程序处于后台时接收通知。?

提前致谢!!

4

4 回答 4

1

如果用户禁用警报通知,他将不会收到此类警报。否则,即使应用程序未运行,他也会立即收到警报。

于 2013-03-22T10:17:57.960 回答
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;
}
于 2019-04-03T06:00:40.003 回答
0

这就是推送通知的真正意义所在。如果您允许应用程序向您发送推送通知,即使应用程序在后台,您也会收到它们。我建议您阅读如何发送推送通知。

另一种选择是让应用程序本身显示通知,这仍然可以在应用程序处于后台时完成。

当他们将警报样式设置为无并关闭通知时,他们将不再收到推送通知。但是话又说回来,如果他们不想,他们不应该得到任何东西。

于 2013-03-22T10:15:34.100 回答
0

对于你的第二个问题:

如果用户在设备的设置应用程序中将应用程序的警报样式配置为“无”,这是否会阻止他在应用程序处于后台时接收通知?

如果用户已将“无”设置为警报样式,则将收到通知但不显示。但是,用户仍然可以在通知中心看到该推送消息。那就是手机不会在屏幕上显示警报。

现在到您的第一个问题,即使应用程序在后台,当正确实施推送通知时也会收到。

于 2013-03-22T10:16:33.657 回答