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_bloclibrary:- Create
BlocProviderat application level for this package's blocs. - Use
BlocBuilder&BlocListenerfor handling state from these blocs.
- Create
Common flow #
-
For Admob:
-
Step 1: Create instances of
AdmobConfig&AdmobService&FrequentlyAdsBlocand/orStaticAdsBloc. -
Step 2: At
main()top-level function, initializeMobileAdby inserting this code:Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await getIt<AdmobService>().init(); runApp(App()); } -
Step 3: Assume that
SplashPageis 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
_adTagto identify which screen had requested ad unit. This is helpful when handle state withBlocListener.)
-
-
For in-app-purchase
- Step 1: Create instances of a
SubscriptionBlocthat extendsBaseSubscriptionBloc. - Step 2: Overrides all needed methods with the correspond functions from your in app purchase library.
- Step 3: Create
PremiumPagewhich 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
FreeUsageCounterBlocto 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.