storifyme_flutter 2.2.2
storifyme_flutter: ^2.2.2 copied to clipboard
StorifyMe Flutter SDK is the official SDK from StorifyMe GmbH that helps you add stories to your Flutter app.
example/lib/main.dart
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:storifyme_flutter/ad_event_listener.dart';
import 'package:storifyme_flutter/storifyme_flutter.dart';
import 'package:storifyme_flutter/util/storify_me_story_audio_options.dart';
import 'package:storifyme_flutter/util/storify_me_story_playback_options.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const StorifyMeFlutterDemoApp());
}
class StorifyMeFlutterDemoApp extends StatefulWidget {
const StorifyMeFlutterDemoApp({super.key});
@override
State<StorifyMeFlutterDemoApp> createState() =>
_StorifyMeFlutterDemoAppState();
}
class _StorifyMeFlutterDemoAppState extends State<StorifyMeFlutterDemoApp>
with NativeEventListener, StorifyMeAdEventListener {
final _storifyMeFlutterPlugin = StorifyMeFlutterPlugin();
@override
void initState() {
super.initState();
initPlatformState();
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
try {
await _storifyMeFlutterPlugin.initPlugin({
Params.API_KEY_ID: 'API_KEY',
Params.ACCOUNT_ID_KEY: 'ACCOUNT_ID',
Params.ENVIRONMENT_KEY: 'EU'
});
_storifyMeFlutterPlugin.setEventListener(this);
_storifyMeFlutterPlugin.setAdEventListener(this);
} on PlatformException {
debugPrint('Failed to get platform version.');
}
}
@override
Widget build(BuildContext context) {
// Your widgets that you want to show
final widgetIds = [1, 2];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('StorifyMe Flutter Demo'),
),
body: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: Platform.isAndroid
? [
SizedBox(
height: 180,
child: StoriesViewWidget(
widgetId: 1,
playbackOptions: StorifyMeStoryPlaybackOptions(
behaviour: StorifyMeStoryPlaybackBehaviour
.alwaysResumeStoryWhereStopped),
audioOptions: StorifyMeStoryAudioOptions(
behaviour: StorifyMeStoryAudioBehaviour
.applyChangeForPresentedStories,
defaultState: StorifyMeStoryAudioState.muted),
),
),
SizedBox(
height: 250,
child: StoriesViewWidget(widgetId: 2),
)
]
: widgetIds.map((widgetId) {
return StoriesViewWidget(
widgetId: widgetId,
playbackOptions: StorifyMeStoryPlaybackOptions(
behaviour: StorifyMeStoryPlaybackBehaviour
.alwaysResumeStoryWhereStopped),
audioOptions: StorifyMeStoryAudioOptions(
behaviour: StorifyMeStoryAudioBehaviour
.applyChangeForPresentedStories,
defaultState: StorifyMeStoryAudioState.unmuted),
);
}).toList(),
),
),
),
);
}
@override
void onAction(String type, String dataJson) {
debugPrint('onAction: $type');
}
@override
void onEvent(String type, String dataJson) {
debugPrint('onAction: $type');
}
@override
void onFail(String exceptionMessage) {
debugPrint('onFail: $exceptionMessage');
}
@override
void onLoad(int widgetId, String storiesJson) {
debugPrint('onLoad: widgetId - $widgetId');
}
@override
void onStoryOpened(String? storyJson, int index) {
debugPrint('onStoryOpened: $storyJson');
}
@override
void onStoryFinished(String? storyJson, int index) {
debugPrint('onStoryFinished: $storyJson');
}
@override
void onStoryClosed(String? storyJson) {
debugPrint('onStoryClosed: $storyJson');
}
@override
void onStoryShared(String? storyJson) {
debugPrint('onStoryShared: $storyJson');
}
@override
void onAdDisplayed(String? storyJson, int index) {
debugPrint('onAdDisplayed: $storyJson at $index');
}
}