iOS push services: is an invisible push notification possible? iOS push services: is an invisible push notification possible? ios ios

iOS push services: is an invisible push notification possible?


There is a well explained documentation in the Apple Online Library.

With Apple Push Notification Service (APNS) you can get ANY combination of:

  • An alert message to display to the user
  • A number to badge the application icon with
  • A sound to play

When I say any I mean that no alert, no badge and no sound are also possible. Remote notifications are available even if the application is closed (but at least once executed, for register into the notification service), iOS has the debt of manage the push and wake up your application.

If you want to use APNS you need

  • a web server (will generate the push)
  • a CSR from the web server
  • an apple certificate trusting your server (this is the reason of CSR)
  • an iOS application with an App ID configured for Notifications

Everything related with CSR and trusting your server is detailed in the iOS provisioning portal, "App ID" section, "How to" tab. Try this link.

In your web server must be hosted the APNS provider who will do these two actions:

  • Register a token identifying a concrete installation on a concrete iOS device. This token is generated for the Apple APNS and will be sended to the Provider by your app.enter image description here

  • Generate push notifications: Will be sended from your provider to Apple APNS, an Apple APNS will delivery to your app (with an alert and/or badge and/or sound and/or silence mode)enter image description here

The APNS notification will be delivered to your app using the Remote Notification System.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

You can look into the Easy APNS App Delegate

As a provider you can use your own developed or you can use/modify anyone already downloadable like

So the answer is YES, it is possible. Using Easy APNS esamples, the push generation must look like this:

$apns->newMessage(1);$apns->addMessageCustom('acme2', array('bang', 'whiz'));$apns->queueMessage();


Yes, it is possible with iOS 7+

You can receive "background" push notifications if you override this method of UIApplicationDelegate:application(_:didReceiveRemoteNotification:fetchCompletionHandler:)

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void){    // do what you need i.e. download fresh content (max. 30 seconds)    completionHandler(UIBackgroundFetchResult.NoData)}

As documentation of this method method says:

Use this method to process incoming remote notifications for your app. Unlike the application:didReceiveRemoteNotification: method, which is called only when your app is running in the foreground, the system calls this method when your app is running in the foreground or background. In addition, if you enabled the remote notifications background mode, the system launches your app (or wakes it from the suspended state) and puts it in the background state when a remote notification arrives.

Don't forget to enable "Background fetch" and "Remote notifications" in your background modes.

enter image description here

More info about background execution here.


You cannot send an invisible push notification while the application is in background. The only way is to update the data when the application comes to the foreground.

You would check at a certain time interval if an update is necessary or make a pull connection with the server.