storifyme_flutter 2.5.4
storifyme_flutter: ^2.5.4 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 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:storifyme_flutter/ad_event_listener.dart';
import 'package:storifyme_flutter/models/storify_me_story.dart';
import 'package:storifyme_flutter/storifyme_flutter.dart';
import 'package:storifyme_flutter/util/storify_me_story_deeplink_trigger_completion.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(
child: Column(
children: widgetIds
.map((widgetId) => StoriesViewWidget(
widgetId: widgetId,
// Estimated height for each widget
// Default value is 180.0
// Please enter the most approximate value to achieve best performance
estimatedHeight: 180.0))
.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, List<StorifyMeStory> stories) {
debugPrint('onLoad: widgetId - $widgetId');
}
@override
void onStoryOpened(StorifyMeStory? story, int index) {
debugPrint('onStoryOpened: $story');
}
@override
void onStoryFinished(StorifyMeStory? story, int index) {
debugPrint('onStoryFinished: $story');
}
@override
void onStoryClosed(StorifyMeStory? story) {
debugPrint('onStoryClosed: $story');
}
@override
void onStoryShared(StorifyMeStory? story) {
debugPrint('onStoryShared: $story');
}
@override
void onShopping(String type, String dataJson) {
debugPrint('onShopping, type: $type, data: $dataJson');
}
@override
Future<StorifyMeStoryDeeplinkTriggerCompletion> onStoryDeeplinkTriggered(
StorifyMeStory? story) {
debugPrint('onStoryDeeplinkTriggered: $story');
return Future.value(
StorifyMeStoryDeeplinkTriggerCompletion.openStoryByDefault);
}
@override
void onAdDisplayed(StorifyMeStory? story, int index) {
debugPrint('onAdDisplayed: $story at $index');
}
}