Protocols

The following protocols are available globally.

  • This protocol is responsible for runtime-persisting actions and associating them with names and predicates.

    Declaration

    Swift

    @MainActor
    public protocol AirshipActionRegistry : Sendable
  • Airship action. Actions can be registered in the ActionRegistry and ran through the ActionRunner.

    See more

    Declaration

    Swift

    public protocol AirshipAction : AnyObject, Sendable
  • Analytics protocol

    See more

    Declaration

    Swift

    public protocol AirshipAnalytics : AnyObject, Sendable
  • Airship Channel protocol.

    See more

    Declaration

    Swift

    public protocol AirshipChannel : AnyObject, Sendable
  • Airship contact. A contact is distinct from a channel and represents a “user” within Airship. Contacts may be named and have channels associated with it.

    See more

    Declaration

    Swift

    public protocol AirshipContact : AnyObject, Sendable
  • Protocol for customizing an Airship embedded view with a style

    See more

    Declaration

    Swift

    public protocol AirshipEmbeddedViewStyle : Sendable
  • Protocol used by Airship to log all log messages within the SDK. A custom log handlers should be set on AirshipConfig.logHandler.

    See more

    Declaration

    Swift

    public protocol AirshipLogHandler : Sendable
  • The privacy manager allow enabling/disabling features in the SDK. The SDK will not make any network requests or collect data if all features are disabled, with a few exceptions when going from enabled -> disabled. To have the SDK opt-out of all features on startup, set the default enabled features in the Config to an empty option set, or in the airshipconfig.plist file with enabledFeatures = none. If any feature is enabled, the SDK will collect and send the following data:

    • Channel ID
    • Contact ID
    • Locale
    • TimeZone
    • Platform
    • Opt in state (push and notifications)
    • SDK version
    See more

    Declaration

    Swift

    public protocol AirshipPrivacyManager : AnyObject, Sendable
  • Airship Push protocol.

    See more

    Declaration

    Swift

    public protocol AirshipPush : AnyObject, Sendable
  • Protocol to be implemented by deep link handlers.

    See more

    Declaration

    Swift

    public protocol DeepLinkDelegate : AnyObject, Sendable
  • A standard protocol for handling commands from the NativeBridge..

    See more

    Declaration

    Swift

    public protocol JavaScriptCommandDelegate : AnyObject, Sendable
  • Airship locale manager.

    See more

    Declaration

    Swift

    public protocol AirshipLocaleManager : AnyObject, Sendable
  • Action runner used in the NativeBridge.

    See more

    Declaration

    Swift

    public protocol NativeBridgeActionRunner : Sendable
  • Delegate to extend the native bridge.

    See more

    Declaration

    Swift

    public protocol NativeBridgeExtensionDelegate : AnyObject
  • Permissions manager delegate. Allows for extending permission gathering.

    See more

    Declaration

    Swift

    public protocol AirshipPermissionDelegate : Sendable
  • Airship permissions manager.

    Airship will provide the default handling for Permission.postNotifications. All other permissions will need to be configured by the app by providing a PermissionDelegate for the given permissions.

    See more

    Declaration

    Swift

    public protocol AirshipPermissionsManager : Sendable
  • Protocol to be implemented by push notification clients. All methods are optional.

    See more

    Declaration

    Swift

    public protocol PushNotificationDelegate : AnyObject, Sendable
  • Implement this protocol and add as a Push.registrationDelegate to receive registration success and failure callbacks.

    See more

    Declaration

    Swift

    public protocol RegistrationDelegate : AnyObject
  • Delegate protocol for accepting and rejecting URLs.

    See more

    Declaration

    Swift

    public protocol URLAllowListDelegate : Sendable
  • Class for accepting and verifying webview URLs.

    URL allow list entries are written as URL patterns with optional wildcard matching:

    <scheme> := <any char combination, '*' are treated as wildcards>
    
    <host> := '*' | '*.'<any char combination except '/' and '*'> | <any char combination except '/' and '*'>
    
    <path> := <any char combination, '*' are treated as wildcards>
    
    <pattern> := '*' | <scheme>://<host>/<path> | <scheme>://<host> | <scheme>:/<path> | <scheme>:///<path>
    

    A single wildcard will match any URI. Wildcards in the scheme pattern will match any characters, and a single wildcard in the scheme will match any scheme. The wildcard in a host pattern "*.mydomain.com" will match anything within the mydomain.com domain. Wildcards in the path pattern will match any characters, including subdirectories.

    Note that NSURL does not support internationalized domains containing non-ASCII characters. All URL allow list entries for internationalized domains must be in ASCII IDNA format as specified in https://tools.ietf.org/html/rfc3490

    See more

    Declaration

    Swift

    public protocol AirshipURLAllowList : Sendable