Add Onesignal to Project
Open Your Flutter Ios Folder in Xcode.
Create New Target.
Select Notification Extension and Name It OneSignalNotificationServiceExtension

Press
Cancel
on theActivate Scheme
prompt

In your project, in the
OneSignalNotificationServiceExtension/
folder, openNotificationService.m
and replace the whole file contents with:
import UserNotifications
import OneSignal
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var receivedRequest: UNNotificationRequest!
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.receivedRequest = request
self.contentHandler = contentHandler
self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestAttemptContent = bestAttemptContent {
OneSignal.didReceiveNotificationExtensionRequest(self.receivedRequest, with: bestAttemptContent, withContentHandler: self.contentHandler)
}
}
override func serviceExtensionTimeWillExpire() {
if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent {
OneSignal.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
contentHandler(bestAttemptContent)
}
}
}
In the main app target, select Signing & Capabilities > All > + Capability, enable Push Notifications.
Next, enable Background Modes and check Remote Notifications.
Last updated
Was this helpful?