inappstory_plugin 0.0.6
inappstory_plugin: ^0.0.6 copied to clipboard
InAppStory SDK Plugin
example/lib/main.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:inappstory_plugin/inappstory_plugin.dart';
import 'appearance_manager_widget.dart';
import 'localization_delegates.dart';
import 'simple_feed_exmaple.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
final navigatorKey = GlobalKey<NavigatorState>();
NavigatorState get navigatorState =>
navigatorKey.currentState ?? (throw Exception('navigatorKey is not set to MaterialApp'));
final _inAppStoryPlugin = InAppStoryPlugin();
final appearanceManager = AppearanceManagerHostApi();
@override
void initState() {
super.initState();
initSdk();
}
Future<void> initSdk() async {
await appearanceManager.setHasLike(true);
await appearanceManager.setHasFavorites(true);
await appearanceManager.setHasShare(true);
await _inAppStoryPlugin.initWith('test-key', 'testUserId', false);
}
void onSimpleExampleTap() {
navigatorState.push(MaterialPageRoute(builder: (_) => const SimpleFeedExampleWidget()));
}
void onAppearanceManagerTap() {
navigatorState.push(MaterialPageRoute(builder: (_) => const AppearanceManagerWidget()));
}
TextDirection textDirection = TextDirection.ltr;
void toggleRtl() {
setState(() {
textDirection = switch (textDirection) {
TextDirection.rtl => TextDirection.ltr,
TextDirection.ltr => TextDirection.rtl,
};
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorKey: navigatorKey,
localizationsDelegates: [
AnyLocaleLocalizationsDelegate<MaterialLocalizations>(DefaultMaterialLocalizations.delegate),
AnyLocaleLocalizationsDelegate<CupertinoLocalizations>(DefaultCupertinoLocalizations.delegate),
WidgetsLocalizationsDelegate(textDirection),
],
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Column(
children: [
const SizedBox(height: 24),
ElevatedButton(onPressed: toggleRtl, child: Text('toggleRtl ${textDirection.name}')),
ElevatedButton(onPressed: onSimpleExampleTap, child: const Text('SimpleExample')),
ElevatedButton(onPressed: onAppearanceManagerTap, child: const Text('Appearance Manager')),
],
),
),
),
);
}
}