flyreel_sdk_flutter 0.1.3
flyreel_sdk_flutter: ^0.1.3 copied to clipboard
Flutter plugin for Flyreel SDK - an advanced property survey solution for U.S. insurance carriers.
Flyreel Flutter SDK #
Requirements: #
Android #
- Android 6+ (minSdk 23)
- compileSdkVersion 34
iOS #
- iOS 13+
Installation #
With flutter #
$ flutter pub add flyreel_sdk_flutter
Path dependency #
via ssh:
flyreel_sdk_flutter:
git:
url: git@github.com:Flyreel/flyreel-sdk-flutter.git
or
via https:
flyreel_sdk_flutter:
git:
url: https://github.com/Flyreel/flyreel-sdk-flutter.git
Usage #
Permissions on iOS #
Since the SDK actively uses some functionalities of the iOS system you need to provide a few permission settings in your Info.plist file.
<dict>
// ...
<key>NSCameraUsageDescription</key>
<string>We need access to the camera.</string>
<key>NSMicrophoneUsageDescription</key>
<string>We need access to the camera.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need access to your location data</string>
</dict>
Initialization #
To use the Flyreel SDK, you must provide a configuration with the following parameters:
organizationId
: Identifier of your organization.
In your lib/main.dart file, initialize Flyreel using provided object:
import 'package:flyreel_sdk_flutter/flyreel_sdk_flutter.dart'; // import Flyreel SDK
import 'package:flyreel_sdk_flutter/flyreel_sdk_models.dart'; // import Flyreel SDK models
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// initialize Flyreel with organizationId and settingsVersion
var config = FlyreelConfig(
organizationId: "5d3633f9103a930011996475",
);
await Flyreel.initialize(config);
runApp(const MyApp());
}
How to open Flyreel chat #
Invoke openFlyreel()
void openFlyreel() async {
await Flyreel.open();
}
Deep Linking #
If you're launching the Flyreel flow from a deep link, push notification, or a custom solution where user details can be provided automatically, use:
void openFlyreelWithCredentials() async {
await Flyreel.openWithCredentials(
zipCode: "80212",
accessCode: "6M4T0T",
);
}
void openFlyreelWithUrl() async {
await Flyreel.open(
deeplinkUrl: "https://your.custom.url/?flyreelAccessCode=6M4T0T&flyreelZipCode=80212");
}
Custom fonts #
If you want to use a custom font for Flyreel chat, you have to provide a ttf file to both iOS and Android Platform.
- in the Android directory, you can put the ttf file in the main/assets folder or the main/res/font folder.
- for iOS, you have to go with the Apple instruction to add a custom font to your project.
Then, you can use the font's name in the Flyreel dashboard panel. For example, if you have added font my_font.ttf to the assets folder, you can use my_font as a font name in the Flyreel dashboard.
Debug Logs #
Enable debug logging for troubleshooting purposes:
void showLogs() async {
await Flyreel.enableLogs();
}
Check Flyreel status for given access and zip code #
You can manually check Flyreel status. This function makes a network request to retrieve the status of Flyreel for the specified zip code and access code.
void checkFlyreelStatus() async {
try {
final result = await Flyreel.checkStatus(
zipCode: "80212",
accessCode: "6M4T0T",
);
print("Status: ${result.status}, expires: ${result.expiration}");
} on PlatformException catch (e) {
print("code: ${e.code}, message: ${e.message}");
}
}
Enable debug logging for troubleshooting purposes:
void showLogs() async {
await Flyreel.enableLogs();
}
Sandbox #
Verify your implementation in the sandbox mode. Initialize Flyreel with an additional parameter:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// ...
var configuration = FlyreelConfiguration(
organizationId = "7d3899f1421a7650241516475",
environment = FlyreelEnvironment.Sandbox
);
await Flyreel.initialize(
application = this,
configuration = configuration
);
// ...
}
Analytics #
/// Subscribes to a stream of analytic events and handles each event with a provided closure.
///
/// This function observes a feed of analytic events from the SDK. When an event
/// is received, the provided handler closure is called with the event as its argument.
///
/// - Parameters:
/// - handler: A closure that is called with the analytic event emitted by the SDK.
/// The closure takes a single parameter:
/// - event: A `FlyreelAnalyticEvent` type that contains event's data.
///
void observeFlyreelAnalytics() async {
Flyreel.observeAnalyticEvents().listen((event) {
debugPrint("event: ${event.toString()}");
});
}
Firewall whitelisting #
Here is a list of Flyreel's hosts in case you need to whitelist URLs.
api3.flyreel.co
sandbox.api3.flyreel.co