Implementação Swift 2.0
Para integrar a SDK Inngage ao seu aplicativo desenvolvido em Swift siga os passos a seguir.
1. No arquivo **Info.plist** adicione a seguinte seguinte chave **InngageAppToken**. O valor desta chave deverá ser obtido na plataforma Inngage em **Configurações do App > Aplication ID**

As implementações abaixo deverão ser feitas no arquivo AppDelegate.swift
2. Adicione a importação da biblioteca:
import PushNotificationManager
3. Adicione o código abaixo no corpo do método **didFinishLaunchingWithOptions** (*método existente*): Um erro de compilação será apresentado, mas não se preocupe, criaremos o método **didReceiveRemoteNotification** nos próximos passos.
let settings =
UIUserNotificationSettings(forTypes:[.Alert, .Badge, .Sound], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
if let remoteNotification = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary {
self.application(application, didReceiveRemoteNotification: remoteNotification as! [NSObject : AnyObject])
}
return true
4. Adicione a implementação do método **didRegisterUserNotificationSettings** (*método novo*):
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
PushNotificationManager.sharedInstance.handlePushRegisterForRemoteNotifications(notificationSettings)
}
4. Adicione a implementação do método **didRegisterForRemoteNotificationsWithDeviceToken** (*método novo*):
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
PushNotificationManager.sharedInstance.handlePushRegistration(deviceToken)
}
5. Adicione a implementação do método **didFailToRegisterForRemoteNotificationsWithError** (*método novo*):
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
PushNotificationManager.sharedInstance.handlePushRegistrationFailure(error)
}
6. Adicione a implementação do método **didReceiveRemoteNotification** (*método novo*):
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
PushNotificationManager.sharedInstance.handlePushReceived(userInfo)
}
Geolocalização
Esta configuração é opcional. Todavia, não adicionar o trecho abaixo impedirá a realização de campanhas de push geolocalizadas.
7. No arquivo Info.plist adicione as seguintes chaves: **NSLocationAlwaysUsageDescription** e **NSLocationWhenInUseUsageDescription**.

As implementações abaixo deverão ser feitas no arquivo ViewController.swift
8. Adicione a importação das seguintes bibliotecas:
import CoreLocation
import PushNotificationManager
9. Adicione na classe ViewController uma extensão da classe **CLLocationManagerDelegate**.
class ViewController: UIViewController, CLLocationManagerDelegate{
...
}
10. Adicione as seguintes variáveis no corpo da classe ViewController:
let locationManager = CLLocationManager()
let status = CLLocationManager.authorizationStatus()
var manager:CLLocationManager!
11. Adicione a seguinte implementação no corpo do método **viewDidLoad()**:
override func viewDidLoad() {
super.viewDidLoad()
if(status == CLAuthorizationStatus.NotDetermined) {
self.locationManager.requestAlwaysAuthorization();
}
else {
manager = CLLocationManager()
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.startUpdatingLocation()
PushNotificationManager.sharedInstance.handleUpdateLocations(manager)
}
}
Alteração do Build Options
Antes de fazer a compilação, altere as seguintes propriedades no Build Settings do target do seu app: Embedded Content Contains Swift Code e Enable Bitcode.

Código Fonte
O projeto exemplo utilizado neste guia se encontra disponível em nosso Github.
Fique a vontade para dar um Fork em nosso repositório 😃
https://github.com/inngage/inngage-swift-sample
Updated over 1 year ago