iOS

  1. Scarica il plugin phonegap per iOS da questo link (La versione di iOS minima supportata è la 4.2).
  2. Fai un Drag and drop dal Finder della cartella PushNotification alla cartella Plugins su XCode, usando “Create groups for any added folders” and spuntando “Copy items if needed”.
  3. Aggiungi un nuovo elemento plugin nel file config.xml come specificato di seguito:
      <plugin name="PushNotification" value="PushNotification" />
  4. Modifica la classe AppDelegate.h aggiungendo la seguente riga:
      #import "PushNotification.h"
  5. Modifica la classe AppDelegate.m aggiungendo questa porzione di codice appena prima del tag @end:
      /* ... */
      
      /* START BLOCK */
      
      #pragma PushNotification delegation
      
      - (void)application:(UIApplication*)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
      {
          PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
          [pushHandler didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
      }
      
      - (void)application:(UIApplication*)app didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
      {
          PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
          [pushHandler didFailToRegisterForRemoteNotificationsWithError:error];
      }
      
      - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
      {
          PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
          NSMutableDictionary* mutableUserInfo = [userInfo mutableCopy];
      
          // Get application state for iOS4.x+ devices, otherwise assume active
          UIApplicationState appState = UIApplicationStateActive;
          if ([application respondsToSelector:@selector(applicationState)]) {
              appState = application.applicationState;
          }
      
          [mutableUserInfo setValue:@"0" forKey:@"applicationLaunchNotification"];
          if (appState == UIApplicationStateActive) {
              [mutableUserInfo setValue:@"1" forKey:@"applicationStateActive"];
              [pushHandler didReceiveRemoteNotification:mutableUserInfo];
          } else {
              [mutableUserInfo setValue:@"0" forKey:@"applicationStateActive"];
              [mutableUserInfo setValue:[NSNumber numberWithDouble: [[NSDate date] timeIntervalSince1970]] forKey:@"timestamp"];
              [pushHandler.pendingNotifications addObject:mutableUserInfo];
          }
      }
      
      /* STOP BLOCK */
      
      @end
  6. Aggiungi anche la seguente porzione di codice dentro il metodo didFinishLaunchingWithOptions, prima del return YES:
      [self.window addSubview:self.viewController.view];
      [self.window makeKeyAndVisible];
      
      /* START BLOCK */
      
      // PushNotification - Handle launch from a push notification
      NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
      if(userInfo) {
          PushNotification *pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
          NSMutableDictionary* mutableUserInfo = [userInfo mutableCopy];
          [mutableUserInfo setValue:@"1" forKey:@"applicationLaunchNotification"];
          [mutableUserInfo setValue:@"0" forKey:@"applicationStateActive"];
          [pushHandler.pendingNotifications addObject:mutableUserInfo];
      }
      
      /* STOP BLOCK */
      
      return YES;
      
  7. Aggiungi lo script PushipNotification.js alla tua cartella assets/www e includilo nel file index.html.
  8. Aggiungi il codice seguente nel metodo OnDeviceReady:
      Puship.PushipAppId = puship_id; // un esempio di puship_id potrebbe essere: "h1mCVGaP9dtGnwG"
      
      Puship.APNS.Register(
      {
          successCallback: function (pushipresult){
              navigator.notification.alert("device registered with DeviceId:" + pushipresult.DeviceId);
          },
          failCallback: function (pushipresult){
              navigator.notification.alert("error during registration: "+ JSON.stringify(pushipresult));
          }
      });

Si, questo è tutto!
Puoi ora connetterti al Puship Manager e inviare notifiche push ai tuoi device!

Per qualunque problema con la configurazione puoi scaricare l’esempio qui sotto

 

 

Per poter invece aggiungere tags, gestire la geolocalizzazione e tutto ciò che riguarda il resto delle api puship visita la documentazione comune per tutte le piattaforme: