Appearance
iOS SDK
Add the Swift package (sdks/ios), then:
swift
import WingBlazeSDK
// App start
WingBlaze.configure(appId: "…", apiUrl: URL(string: "https://api…")!, ingestUrl: URL(string: "https://ingest…")!)
let granted = try await WingBlaze.enablePush()
// AppDelegate
func application(_ app: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken token: Data) {
Task { try await WingBlaze.didRegisterForRemoteNotifications(deviceToken: token) }
}
// UNUserNotificationCenterDelegate
func userNotificationCenter(_ c: UNUserNotificationCenter, didReceive response: UNNotificationResponse) async {
if let deepLink = await WingBlaze.handleNotificationClick(response) { open(deepLink) }
}
try await WingBlaze.login("user-123")
try await WingBlaze.addTags(["plan": "pro"])
try await WingBlaze.trackEvent("purchase", ["amount": 42])Confirmed delivery
Add a Notification Service Extension whose class subclasses WingBlazeNotificationService — pushes are sent with mutable-content: 1, so the extension runs on every delivery, beacons it, and attaches imageUrl images.
Live Activities
swift
let activity = try Activity.request(attributes: attrs,
content: .init(state: initial, staleDate: nil), pushType: .token)
WingBlaze.attachLiveActivity(activity) { serverId in /* send to your backend */ }The SDK registers the activity's push token (and re-registers on rotation); your backend drives updates via the Live Activities API.