Flutter Setup
How to install the Airship Flutter plugin.
Requirements
- Dart SDK 2.17.3+
- Flutter 3.0.2+
iOS
- Xcode
14.3+
- minimum deployment target iOS
14+
Android
- minSdkVersion
21+
- compileSdkVersion
33+
Installation
Add the Airship dependency to your package’s
pubspec.yaml
file:dependencies: airship_flutter: ^7.0.0
Install your Flutter package dependencies by running the following in the command line, at your project’s root directory:
flutter pub get
Import Airship into your project:
import 'package:airship_flutter/airship_flutter.dart';
Android Setup
Download the Firebase
google-services.json
file and place it insideandroid/app
.Apply the
com.google.gms.google-services
plugin in the app-levelbuild.gradle
file.
iOS Setup
Add the following capabilities to your application target:
- Push Notifications
- Background Modes > Remote Notifications
To take advantage of notification attachments, such as images, animated gifs, and video, you will need to create a notification service extension .
Follow the CocoaPods steps in the iOS Notification Service Extension Guide.
Calling TakeOff
takeOff
should be called in a standard application at the beginning of the lifecycle. Once takeOff
is called, the config will be stored and applied for future app inits. If takeOff
is called again with a different config, the new config will not be applied until the next app init.
var config = AirshipConfig(
defaultEnvironment: ConfigEnvironment(
appKey: "REPLACE_WITH_YOUR_APP_KEY",
appSecret: "REPLACE_WITH_YOUR_APP_SECRET"
),
site: Site.us, // use eu for EU cloud projects
urlAllowList: ["*"],
androidConfig: AndroidConfig(
notificationConfig: AndroidNotificationConfig(
icon: "ic_notification",
accentColor: "#00ff00"
)
)
);
Airship.takeOff(config);
URL Allowlist
The URL allowlist controls which URLs the Airship SDK is able to act on. The SDK divides up usages of URLs into three different config options:
urlAllowListScopeOpenUrl
: Only URLs allowed for this scope can be opened from an action, displayed in landing page, displayed in an HTML in-app message, or displayed as media in an In-App Automation. Defaults to any Airship-originated URLs and YouTube URLs.urlAllowListScopeJavaScriptInterface
: These URLs are checked before the Airship JavaScript interface is injected into the webview. Defaults to any Airship-originated URLsurlAllowList
: Both scopes are applied to these URLs.
<pattern> := '*' | <scheme>'://'<host>/<path> | <scheme>'://'<host> | <scheme>':/'<path> | <scheme>':///'<path>
<scheme> := <any char combination, '*' are treated as wild cards>
<host> := '*' | '*.'<any char combination except '/' and '*'> | <any char combination except '/' and '*'>
<path> := <any char combination, '*' are treated as wild cards>
To accept any URL within the SDK, set the urlAllowList
to ["*"]
.
Categories