Add Restore purchases button to example (#3950)
diff --git a/packages/in_app_purchase/in_app_purchase_ios/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_ios/CHANGELOG.md
index d46c124..480426c 100644
--- a/packages/in_app_purchase/in_app_purchase_ios/CHANGELOG.md
+++ b/packages/in_app_purchase/in_app_purchase_ios/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.1.0+1
+
+* Added a "Restore purchases" button to conform to Apple's StoreKit guidelines on [restoring products](https://developer.apple.com/documentation/storekit/in-app_purchase/restoring_purchased_products?language=objc);
+
## 0.1.0
* Initial open-source release.
\ No newline at end of file
diff --git a/packages/in_app_purchase/in_app_purchase_ios/example/lib/main.dart b/packages/in_app_purchase/in_app_purchase_ios/example/lib/main.dart
index d871ce0..5452f5a 100644
--- a/packages/in_app_purchase/in_app_purchase_ios/example/lib/main.dart
+++ b/packages/in_app_purchase/in_app_purchase_ios/example/lib/main.dart
@@ -110,8 +110,6 @@
return;
}
- await _iapIosPlatform.restorePurchases();
-
List<String> consumables = await ConsumableStore.load();
setState(() {
_isAvailable = isAvailable;
@@ -139,6 +137,7 @@
_buildConnectionCheckTile(),
_buildProductList(),
_buildConsumableBox(),
+ _buildRestoreButton(),
],
),
);
@@ -310,6 +309,30 @@
]));
}
+ Widget _buildRestoreButton() {
+ if (_loading) {
+ return Container();
+ }
+
+ return Padding(
+ padding: const EdgeInsets.all(4.0),
+ child: Row(
+ mainAxisSize: MainAxisSize.max,
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ TextButton(
+ child: Text('Restore purchases'),
+ style: TextButton.styleFrom(
+ backgroundColor: Theme.of(context).primaryColor,
+ primary: Colors.white,
+ ),
+ onPressed: () => _iapIosPlatform.restorePurchases(),
+ ),
+ ],
+ ),
+ );
+ }
+
Future<void> consume(String id) async {
await ConsumableStore.consume(id);
final List<String> consumables = await ConsumableStore.load();
diff --git a/packages/in_app_purchase/in_app_purchase_ios/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_ios/pubspec.yaml
index 8207b03..7a3885a 100644
--- a/packages/in_app_purchase/in_app_purchase_ios/pubspec.yaml
+++ b/packages/in_app_purchase/in_app_purchase_ios/pubspec.yaml
@@ -2,7 +2,7 @@
description: An implementation for the iOS platform of the Flutter `in_app_purchase` plugin. This uses the iOS StoreKit Framework.
repository: https://github.com/flutter/plugins/tree/master/packages/in_app_purchase/in_app_purchase_ios
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22
-version: 0.1.0
+version: 0.1.0+1
environment:
sdk: ">=2.12.0 <3.0.0"