Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apple Push Notification Registration & Device Token Receive clarification?

I am working on an iPhone app with Apple Push Notification integration. I have some doubts on this.

  1. If the user clicked "Dont Allow" button in the APNS registration alert, will our code still receives the Device Token from APNS?

  2. I have tested that when the user switched off the notification in iPhone notification, still the app receives the Device Token from APNS? It is correct?

Can anyone please clarify these doubts?

like image 864
Gopinath Avatar asked Jun 15 '12 06:06

Gopinath


People also ask

Do you need Apple developer account for push notifications?

An Apple Developer Program membership: To send push notifications, you need a push notification certificate for your App ID, which requires a program membership. Push Notifications: You'll use this utility app to send notifications to a test device.

What does Apple Push Notification Service do?

Every mobile app platform, such as iOS and Android, has their own OSPNS, or push notification service, that developers can use to deliver push notifications. App publishers must build their apps with OSPNS's enabled to connect with iOS and/or Android phones.


2 Answers

  1. In my understanding on APNS, it doesn't depend on the user's action (as you mentioned that if when the user clicks on "Don't Allow" button) for your iOS to receive the Device Token.

    If you included in your app:

    - (void)application:didRegisterForRemoteNotificationsWithDeviceToken        
    

    This means that your iOS-based app is sending a request for Push Notification registration. In return, Apple sends the Device Token to the iOS; then the iOS sends the token to the app and then the app sends it to their service provider.

    Note that when the user is asked "Don't Allow" doesn't mean that you're not going to receive the device token. "Don't Allow" refers to the action to be taken to any notification received by the app that is intended for the user. Say, location. This is a whole different thing. This means that the user doesn't allow the app to use his/her location.

  2. Yes. it still receives the Device Token as what I have discussed in my answer to your question in #1. This is only a setting for your app, which means that you won't be receiving any visible notification (badge, message or a sound) whenever there are updates about any information in relevance to your application. It's like setting your Facebook account to only receive notifications when your friends sends you a private message. Other than that, you won't be notified at all.

    The process of enabling APNS is:

    1. Request for certificate Authority
    2. Create app id
    3. Configuring AppId for Push Notifications
    4. Create provisioning profile
    5. Provisioning a device
    6. Enabling the profile in Xcode
    7. Creating push notification provider.

For more understanding on APNS, check this out.

like image 93
Kimpoy Avatar answered Sep 20 '22 16:09

Kimpoy


I have tested with Xcode 6.1, ios8.1.2. Currently the device token will be generated only in two cases

  1. Apple's default consent with "Ok" option
  2. After "Dont allow", manual change in Setting->Notifications->app->AllowNotification(On)

By declining first time with apple's consent, will not generate device token, till manually change the value in settings page.

like image 38
Venkataraman K Avatar answered Sep 21 '22 16:09

Venkataraman K