如果用户不接受,也使用推送通知

Posted

技术标签:

【中文标题】如果用户不接受,也使用推送通知【英文标题】:Use push notifications also if user doesn't accept them 【发布时间】:2012-05-18 08:12:33 【问题描述】:

我对 iPhone 推送通知有疑问。当用户使用应用程序时,我需要使用它们,但对我来说,当应用程序关闭时不需要警报声音徽章。

我的问题是:如果用户在应用启动时不接受推送通知,我是否也可以使用这些通知?

我会使用推送系统来避免任何计时器在应用程序运行时定期从我们的服务器获取信息;它们将是自定义通知,没有警报、徽章和声音。

谢谢

【问题讨论】:

【参考方案1】:

不,您不能规避用户的选择(用户说不,您应该尊重这一点)。但是,您可以使用

确定用户是否选择退出
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (types == UIRemoteNotificationTypeNone) 
    // user does not want to get push notifications

【讨论】:

【参考方案2】:

不,你不能。如果用户拒绝通知,APNS 服务器将不会将它们发送到设备。 顺便说一句,在不征得用户许可的情况下尝试从应用中获取应用/用户信息可能会导致应用被 App Store 拒绝。

【讨论】:

谢谢,但我不想获取应用程序/用户信息。我只需要与我们的服务器交换自定义消息:该应用程序是一个聊天,所以我只想向用户推送有新消息给他,以便应用程序可以向服务器请求新消息。 好吧,如果你要使用APNS系统,你需要用户协议。这意味着如果您希望用户在应用程序关闭时接收通知,您需要 APNS 系统。如果您希望您的应用程序仅在启动后工作,您可以使用线程和后台活动。您还可以有一个侦听器来读取服务器的消息。或者让应用程序执行计划检查(每 xx 秒)。在这种情况下,您应该认真考虑使用的计时器,因为它会对电池使用产生巨大影响。 我知道定时器会导致很多电池使用问题,因此我会使用APNS。我不明白的是我怎么会有一个监听器来读取服务器的消息。我应该在 iPhone 上使用“某种”服务器套接字吗?要不然是啥?谢谢

以上是关于如果用户不接受,也使用推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如果用户既没有允许也没有“不允许”我的应用程序的推送通知,推送通知会起作用吗?

检查用户是不是在代号中接受了 iOS 中的推送通知权限

如何提示用户接受 AppDelegate 之外的推送通知?

本地通知和推送通知

如果用户在 IOS 中禁用了后台应用刷新,为啥不发送推送通知?

如何不向不想接收推送的用户发送FCM?