handleMethodCall method
Implementation
Future<dynamic> handleMethodCall(MethodCall call) async {
if (_initCompleter == null) {
throw PlatformException(
code: _unknownErrorCode,
message: 'Purchases SDK not loaded on method call: ${call.method}',
);
}
await _initCompleter?.future;
try {
switch (call.method) {
case 'setupPurchases':
return await _setupPurchases(call.arguments);
case 'setLogLevel':
return _setLogLevel(call.arguments);
case 'getCustomerInfo':
return _getCustomerInfo();
case 'getOfferings':
return _getOfferings();
case 'getCurrentOfferingForPlacement':
return _getCurrentOfferingForPlacement(call.arguments);
case 'getAppUserID':
return _getAppUserID();
case 'logIn':
return _logIn(call.arguments);
case 'logOut':
return _logOut();
case 'purchasePackage':
return _purchasePackage(call.arguments);
case 'restorePurchases':
return _restorePurchases();
case 'close':
return _close();
case 'isAnonymous':
return _isAnonymous();
case 'isSandbox':
return _isSandbox();
case 'isConfigured':
return _isConfigured();
case 'checkTrialOrIntroductoryPriceEligibility':
return _checkTrialOrIntroductoryPriceEligibility(call.arguments);
case 'setProxyURL':
return _setProxyURL(call.arguments);
case 'canMakePayments':
return Future.value(true);
case 'isWebPurchaseRedemptionURL':
return Future.value(false);
case 'setAttributes':
return _setAttributes(call.arguments);
case 'setEmail':
return _setEmail(call.arguments);
case 'setPhoneNumber':
return _setPhoneNumber(call.arguments);
case 'setDisplayName':
return _setDisplayName(call.arguments);
case 'getVirtualCurrencies':
return _getVirtualCurrencies();
case 'invalidateVirtualCurrenciesCache':
return _invalidateVirtualCurrenciesCache();
case 'getCachedVirtualCurrencies':
return _getCachedVirtualCurrencies();
case 'syncPurchases':
case 'collectDeviceIdentifiers':
case 'invalidateCustomerInfoCache':
case 'showInAppMessages':
case 'enableAdServicesAttributionTokenCollection':
case 'setSimulatesAskToBuyInSandbox':
case 'setAllowSharingStoreAccount':
// No-op on web
return Future.value();
case 'purchase':
case 'purchaseProduct':
case 'recordPurchase':
case 'getPromotionalOffer':
case 'purchaseDiscountedPackage':
case 'purchaseDiscountedProduct':
case 'purchaseSubscriptionOption':
case 'presentCodeRedemptionSheet':
case 'beginRefundRequestForEntitlement':
case 'beginRefundRequestForProduct':
case 'beginRefundRequestForActiveEntitlement':
case 'purchasePackageWithWinBackOffer':
case 'purchaseProductWithWinBackOffer':
case 'getEligibleWinBackOffersForProduct':
case 'redeemWebPurchase':
throw UnsupportedPlatformException();
default:
throw UnsupportedError(
'${call.method} not implemented on web platform.',
);
}
} catch (e) {
rethrow;
}
}