【问题标题】:Dynamically set push notification status when using Urban Airship使用 Urban Airship 时动态设置推送通知状态
【发布时间】:2016-08-19 13:08:35
【问题描述】:

我已经使用Urban Airship 设置了我的目标 C 应用程序以接收推送通知,并且可以很好地接收它们。但在我的应用程序中,用户应该能够删除这些通知,即用户不想再收到任何推送消息。我只是不知道如何关闭它。

我知道用户可以在设备设置中禁用应用程序设置中的通知,但在这种特殊情况下,这不是一个理想的解决方案。该应用仍应允许接收通知。

我找到了一些要调用的方法和要设置的变量,但没有任何帮助。当我尝试删除我的注册以获取通知时,我称之为:

[UAirship push].allowUnregisteringUserNotificationTypes = YES;
[UAirship push].userPushNotificationsEnabled = NO;
[UAirship push].backgroundPushNotificationsEnabled = NO;
[[UAirship push] setUserNotificationTypes:(UIUserNotificationTypeNone)];
[[UAirship push] updateRegistration];

任何人都知道这实际上是可能的,还是我必须以不同的方式删除?

【问题讨论】:

  • 您是否使用第三方框架来停止通知..UAirship 是什么?
  • @vaibhav 我正在使用名为 Urban Airship 的第三方框架来处理推送通知,而不是 Apple 的 APNS 服务器。所以我设置了 Urban Airship,以便能够通过他们的服务器向我的应用程序发送推送通知。但我无法关闭它,即使上面显示的代码表明它应该是可能的。
  • @ClookWise 我在这里的困惑会感染所有第三方推送通知,例如 GCMUAirship 与 APN 同步,所以您是否尝试过禁用常规方式 (APN) 的通知..

标签: ios objective-c apple-push-notifications urbanairship.com


【解决方案1】:

您还需要设置requireSettingsAppToDisableUserNotifications 才能禁用用户通知。

由于 iOS 8 中引入了一个错误,我们必须防止通知被禁用,如果您禁用通知,它们将无法在不重新启动的情况下再次启用 (Radar #17878212)。相反,我们建议您只允许在应用内启用通知,然后为您的用户提供link to the settings 以轻松禁用它们。它并不理想,但它避免了这个错误。

它看起来终于在 iOS 10 中得到修复,因此我们的 SDK 8.0.0 支持 iOS 10 将允许禁用类型,而无需任何额外的标志或麻烦。

【讨论】:

    【解决方案2】:

    只需使用以下代码:

    // use this for start recieving notification (enable)
    
    
    [[UIApplication sharedApplication] registerForRemoteNotifications];
    
    // use this for stop recieving notification (disable)
    
    [[UIApplication sharedApplication] unregisterForRemoteNotifications];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 2013-11-10
      相关资源
      最近更新 更多