didFailToRegisterForRemoteNotificationsWithError:

2020-05-23 08:35发布

If the user refuses the enable push notifications, we'll get an error, through didFailToRegisterForRemoteNotificationsWithError. Does anybody know what the code in the NSError object will be in this case (to differentiate it from, say, no connection being available)?

标签: ios push
4条回答
ゆ 、 Hurt°
2楼-- · 2020-05-23 08:53

Although this question is old, and agree with most of the @Jerred's answer, i thought of posting an updated answer anyway.

The answer to main question in the thread is NO.

application:didFailToRegisterForRemoteNotificationsWithError: gets called when the app is signed with incorrect provisioning profile.

Also,

application:didRegisterForRemoteNotificationsWithDeviceToken: gets called only when user enables at-least one of the badge, banner/alert or sound setting in the notification center (in Settings app) for your app.

There are scenarios where iOS will not call either of these methods

  • When user refuses to grant permissions for app to send push notifications
  • When there is no network connectivity and user granted permissions to send push notifications.
  • When user disables the push notifications for app from notification center in Settings app.
查看更多
趁早两清
3楼-- · 2020-05-23 08:57

I don't think your initial statement (always) holds true. If an app is properly signed with a valid provisioning profile, calling registerForRemoteNotificationTypes: will result in application:didRegisterForRemoteNotificationsWithDeviceToken: regardless of the user's Notifications choices in the Settings app. From my experience, the only times I have seen application:didFailToRegisterForRemoteNotificationsWithError: get called was because of an improperly signed app. The error in question mentioned "no valid aps-environment entitlement found for application".

查看更多
再贱就再见
4楼-- · 2020-05-23 09:07

To my experience, didFailToRegisterForRemoteNotificationsWithError: method is reserved for more serious cases which prevents the app from even showing the notification permission request dialog to the user. The cases that I know of include the app being run on devices that do not support push notifications, (e.g. Simulator) or some misconfiguration in the aps-environment entitlement in the app binary.

查看更多
Deceive 欺骗
5楼-- · 2020-05-23 09:08

For me there was 2 files that held the entitlements, here I added Aps-enviroment : production and it worked afterenter image description here

查看更多
登录 后发表回答