第一次启动推送应用时,系统会询问用户是否允许推送通知。
问题在于,didRegisterForRemoteNotificationsWithDeviceToken
在用户做出决定之前被调用,因此enabledRemoteNotificationTypes
在用户点击按钮之前全部被禁用。
我在我的服务器上注册此didRegisterForRemoteNotificationsWithDeviceToken
方法中的推送消息的设备,所以我第一次让用户禁用所有通知,尽管用户可能在几秒钟后点击“允许”。 / p>
下次启动时此信息会更新,但只要用户没有重启应用程序(在多任务处理时可能需要很长时间),我就无法向此人发送推送消息。
有人给我一个提示吗?有没有更好的地方用用户设置更新我的服务器。可能是弹出窗口的回调可能会出现在非常热的时候吗?
感谢所有提示!
答案 0 :(得分:2)
您不应跟踪服务器上启用的通知类型。当用户为您的应用禁用某种类型的通知时,例如声音,您的通知仍然可以包含声音键,但设备将无法播放。
问题是,用户可以(重新)为应用启用任何通知类型,因此您的服务器没有机会注意到更改,您也不会发送通知,即使用户期望他们。