diff --git a/Libraries/PushNotificationIOS/PushNotificationIOS.js b/Libraries/PushNotificationIOS/PushNotificationIOS.js index adf8ecf5a..1781ddff1 100644 --- a/Libraries/PushNotificationIOS/PushNotificationIOS.js +++ b/Libraries/PushNotificationIOS/PushNotificationIOS.js @@ -121,6 +121,18 @@ class PushNotificationIOS { RCTPushNotificationManager.requestPermissions(requestedPermissions); } + /** + * Unregister for all remote notifications received via Apple Push Notification service. + * + * You should call this method in rare circumstances only, such as when a new version of + * the app removes support for all types of remote notifications. Users can temporarily + * prevent apps from receiving remote notifications through the Notifications section of + * the Settings app. Apps unregistered through this method can always re-register. + */ + static abandonPermissions() { + RCTPushNotificationManager.abandonPermissions(); + } + /** * See what push permissions are currently enabled. `callback` will be * invoked with a `permissions` object: diff --git a/Libraries/PushNotificationIOS/RCTPushNotificationManager.m b/Libraries/PushNotificationIOS/RCTPushNotificationManager.m index 97de4aa07..6a9420819 100644 --- a/Libraries/PushNotificationIOS/RCTPushNotificationManager.m +++ b/Libraries/PushNotificationIOS/RCTPushNotificationManager.m @@ -148,6 +148,11 @@ RCT_EXPORT_METHOD(requestPermissions:(NSDictionary *)permissions) } +RCT_EXPORT_METHOD(abandonPermissions) +{ + [[UIApplication sharedApplication] unregisterForRemoteNotifications]; +} + RCT_EXPORT_METHOD(checkPermissions:(RCTResponseSenderBlock)callback) { NSUInteger types = 0;