【问题标题】:Xcode Recieve notification only when app is activeXcode 仅在应用程序处于活动状态时接收通知
【发布时间】:2016-05-28 09:20:13
【问题描述】:

我用 Objective-C 编写。 我正在使用远程推送通知进行应用程序控制。我不想在应用未激活时用警报和声音打扰用户。我需要做的 - 如果应用程序未激活 - 收到通知时什么也不做。 谢谢。

【问题讨论】:

    标签: objective-c xcode notifications push


    【解决方案1】:

    您想发送静默通知。没有aps 键发送的通知是静默的。 iOS 不会播放声音,也不会在设备上显示横幅。如果您的应用正在运行,您的应用仍会收到此类通知,并且可以根据自己的选择做出响应。如果应用在后台,它可以显示本地通知,也可以忽略它。

    【讨论】:

      【解决方案2】:

      以下是您的案件需要收到的 palyload 结构:

      {
          "aps" : {
              "badge" : 5,
          },
          "acme1" : "bar",
          "acme2" : [ "bang",  "whiz" ]
      }
      

      顺便说一句:如果你不需要徽章,你也不能提及它。

      【讨论】:

        【解决方案3】:

        只需将以下代码添加到您的 Appdelegate.m 文件中

        - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
        {
            UIApplicationState state = [application applicationState];
            if(state == UIApplicationStateActive)
            {
                //app in active mode
                // add your code as you want to handle
            }
            else{
                // app is in terminated mode
            }
        }
        

        【讨论】:

        • 不起作用。当应用程序处于非活动状态时,它会显示声音警报。
        • 你必须在你的 didFinishLaunchingWithOptions 中设置 UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
        • 我在回答中提到的特定有效负载是可能的。
        【解决方案4】:

        这比我想象的要容易。只是在 aps 部分的数组中没有警报和声音元素。 没有警报 - 没有什么可显示的。 没有声音 - 没有可播放的内容。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-30
          • 1970-01-01
          • 2014-12-07
          • 1970-01-01
          • 1970-01-01
          • 2021-02-22
          相关资源
          最近更新 更多