blob: 91585dbfc88f4efb763208673e2ec25064278403 [file] [log] [blame] [view]
# in_app_purchase_platform_interface
A common platform interface for the [`in_app_purchase`][1] plugin.
This interface allows platform-specific implementations of the `in_app_purchase`
plugin, as well as the plugin itself, to ensure they are supporting the
same interface.
# Usage
To implement a new platform-specific implementation of `in_app_purchase`, extend
[`InAppPurchasePlatform`][2] with an implementation that performs the
platform-specific behavior, and when you register your plugin, set the default
`InAppPurchasePlatform` by calling
`InAppPurchasePlatform.setInstance(MyPlatformInAppPurchase())`.
To implement functionality that is specific to the platform and is not covered
by the [`InAppPurchasePlatform`][2] idiomatic API, extend
[`InAppPurchasePlatformAddition`][3] with the platform-specific functionality,
and when the plugin is registered, set the addition instance by calling
`InAppPurchasePlatformAddition.instance = MyPlatformInAppPurchaseAddition()`.
# Note on breaking changes
Strongly prefer non-breaking changes (such as adding a method to the interface)
over breaking changes for this package.
See https://flutter.dev/go/platform-interface-breaking-changes for a discussion
on why a less-clean interface is preferable to a breaking change.
[1]: ../in_app_purchase
[2]: lib/in_app_purchase_platform_interface.dart
[3]: lib/in_app_purchase_platform_addition.dart