knt_base_monetized 4.2.2
knt_base_monetized: ^4.2.2 copied to clipboard
Helper blocs for handling common in-app-purchase flow
knt_base_monetized #
Helper blocs for handling common in-app-purchase & admob flow.
Getting Started #
-
Config your admob ID
- Make sure you had completed platform setup followed this reference Platform Admob Setup.
-
Recommends using get_it & injectable for dependencies injection.
- Refer section Registering third party types for create instances of BLoC & service classes in this package.
- These Bloc & service need to be singleton (refer @singleton annotation with
injectable
).
-
BLoC pattern knowledge, refer library fluter_bloc.
-
Use
fluter_bloc
library:- Create
BlocProvider
at application level for this package's blocs. - Use
BlocBuilder
&BlocListener
for handling state from these blocs.
- Create
Common flow #
-
For Admob:
-
Step 1: Create instances of
AdmobConfig
&AdmobService
&FrequentlyAdsBloc
and/orStaticAdsBloc
. -
Step 2: At
main()
top-level function, initializeMobileAd
by inserting this code:Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await getIt<AdmobService>().init(); runApp(App()); }
-
Step 3: Assume that
SplashPage
is your app's first page, then insert these code insideinitState()
:Future.delayed(Duration.zero, () { context.read<FrequentlyAdsBloc>().add(PrepareFrequentlyAdEvent()); }
-
Step 4: Whenever you need to show
InterstitialAd
, just call:context.read<FrequentlyAdsBloc>().add(ShowFrequentlyAdEvent(_adTag));
(I recommend create a unique
_adTag
to identify which screen had requested ad unit. This is helpful when handle state withBlocListener
.)
-
-
For in-app-purchase
- Step 1: Create instances of a
SubscriptionBloc
that extendsBaseSubscriptionBloc
. - Step 2: Overrides all needed methods with the correspond functions from your in app purchase library.
- Step 3: Create
PremiumPage
which shows UI for premium-feature, contains SKU list / restore purchase option / term & privacy. - Step 4:
- For showing SKU list: Using
SubscriptionBloc#FetchListSkuEvent
. - For request subscription on SKU item: Using
SubscriptionBloc#RequestSubscriptionEvent
. - For request restore purchase: Using
SubscriptionBloc#RestoreSubscriptionEvent
.
- For showing SKU list: Using
- Step 4 (Optional): Create instances of
FreeUsageCounterBloc
to handle user's free usage flow.
- Step 1: Create instances of a
Note #
- This package included app_tracking_transparency for handling privacy iOS about admob.