【发布时间】:2020-06-29 22:49:11
【问题描述】:
我正在尝试使用 flutter_in_app_purchases 插件在 Flutter 中实现可更新订阅。当我单击声明它的屏幕时,它会通过 initState() 函数,然后到达 initPlatformState() 并成功通过,但是当它到达 getProducts() 函数时,它返回一个空项目列表项的列表 = FlutterInappPurchase.instance.getSubscriptions([productID]);称呼。我已在 App Store Connect 和 Google Play Store 中添加了每月订阅,并填写了税表。任何帮助将不胜感激。
List<IAPItem> _items = [];
static const String productID = 'monthly_subscription';
@override
void initState() {
super.initState();
print("IN INIT STATE");
initPlatformState();
}
Future<void> initPlatformState() async {
print("In init platform state");
// prepare
final bool available = await InAppPurchaseConnection.instance.isAvailable();
print(available);
var close = await FlutterInappPurchase.instance.endConnection;
var result = await FlutterInappPurchase.instance.initConnection;
print('result: $result');
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) {
print('In not mounded');
return;
}
// refresh items for android
/*try {
String msg = await FlutterInappPurchase.instance.consumeAllItems;
print('consumeAllItems: $msg');
} catch(e){
print(e.toString());
}*/
await _getProduct();
}
Future<Null> _getProduct() async {
print("In get products");
try {
List<IAPItem> items = await FlutterInappPurchase.instance.getSubscriptions([productID]);
print("Items is: $items");
for (var item in items) {
print('${item.toString()}');
this._items.add(item);
}
setState(() {
this._items = items;
});
} catch(e) {
print(e.toString());
}
}
【问题讨论】:
标签: flutter dart in-app-purchase in-app-subscription