Survey notifications

These are optional implementations for Sense360 SDK survey notifications.

Notification handlers

All notifications from Sense360 are sent with a UNNotificationCategory of sense360, handled by the delegate methods below. The iOS SDK calls the completion handlers for all notifications with the sense360 category.

These methods return true if it was a Sense360 notification and the completion handler was invoked. Ignore notifications where isSense360Notification = true.

import UIKit
import SenseQuinoaLib
import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

	func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

	    let _ = Sense360.restore(sendNotifications: true)
            UNUserNotificationCenter.current().delegate = self

            return true
       }
// Follows the rest of the AppDelegate
}
extension AppDelegate: UNUserNotificationCenterDelegate {
	func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
	// If isSense360Notification = true, Sense360 handles the notification, calls the withCompletionHandler, and your application can skip processing the notification.
	let _ = Sense360.userNotificationCenterDidReceive(center: center, didReceive: response, withCompletionHandler: completionHandler)
	}

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    // If isSense360Notification = true, Sense360 handles the notification, calls the withCompletionHandler, and your application can skip processing the notification.
        let _ = Sense360.userNotificationCenterWillPresent(center: center, willPresent: notification, withCompletionHandler: completionHandler)

//Follows the rest of the didReceiveLocalNotification code.
    }
}

Notification callbacks

Notification callbacks notify you when a notification is sent, clicked, or cancelled (that is, swiped).

Create the class NotificationHandler.swift to implement the SenseNotificationDelegate protocol.

import SenseQuinoaLib

class NotificationHandler: SenseNotificationDelegate {
func notificationClicked(clickData: NotificationClickData){
     //Call this method when clicking a notification 
    print("User was redirected to \(clickData.url.absoluteString)")
}
     //Call this method when sending a notification 
     func notificationSent(){
     }
}

Pass NotificationHandler() into the Sense360 start:sendNotifications: call.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

let handler = NotificationHandler()
// Replace this call to start:sendNotifications: with any previous versions.
Sense360.restore(handler, sendNotifications: true)
}