флаттер IAP как «Восстановить покупки» - PullRequest
0 голосов
/ 14 декабря 2018

Я использую flutter_inapp_purchase для IAP-приложения моего флаттера непотребляемого продукта.Для IOS необходимо включить функцию «Восстановить покупки», чтобы пользователи могли восстанавливать ранее приобретенные покупки в приложении.Могу ли я узнать, как создать кнопку «Восстановить» и инициировать процесс восстановления, когда пользователь нажимает кнопку «Восстановить»?

  Future<Null> _buyProduct(IAPItem item) async {
    try {
      PurchasedItem purchased= await 
  FlutterInappPurchase.buyProduct(item.productId);
      print('purcuased - ${purchased.toString()}');
    } catch (error) {
      print('$error');
    }
  }

  Future<Null> _getProduct() async {
    List<IAPItem> items = await FlutterInappPurchase.getProducts(_productLists);
    for (var item in items) {
      print('${item.toString()}');
      this._items.add(item);
    }

    setState(() {
      this._items = items;
    });
  }

1 Ответ

0 голосов
/ 15 декабря 2018

В соответствии с плагином Документация Вы можете использовать API

getAvailablePurchases

enter image description here

Что смотрит на нативный код библиотекиэтот метод является ссылкой на

// getAvailablePurchases
- (void)getAvailableItems:(FlutterResult)result {
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
    flutterResult = result;
}

и от Apple документы :

декларация

func restoreCompletedTransactions()

Обсуждение

Используйте этот метод для восстановления завершенных транзакций, то есть транзакций, для которых вы уже вызвали finishTransaction (_ :).Вы вызываете этот метод в одной из следующих ситуаций: Для установки покупок на дополнительных устройствах. Для восстановления покупок для приложения, которое пользователь удалил и переустановил

Итак, добавление кнопки виджета (той, которая вам нравится больше всего)зависит от вас, и вы можете поместить его в любое место.

Затем в событии onClick вызовите getAvailableItems и управляйте ранее купленными покупками пользователей и переустанавливайте их на устройстве пользователя.

...