You first have to wrap your app with the withIAPContext HOC.
import React from 'react';
import {withIAPContext} from 'react-native-iap';
const App = () => <View />;
export default withIAPContext(App);
use IAP() 후크는 간단한 react-native-iap 메서드에 쉽게 액세스할 수 있는 방법입니다. 이미 컨텍스트를 통해 일부 작업을 수행하여 제품, 구매, 구독, 콜백 및 오류 처리기를 더 빨리 얻을 수 있도록 지원합니다.
아래는 후크를 통해 사용할 수 있는 모든 방법입니다. 나머지 모든 방법(예: requestPurchase)은 'react-native-iap'에서 일반적인 가져오기 {requestPurchase}를 통해 사용할 수 있습니다.
import React from 'react';
import {View, Text} from 'react-native';
import {requestPurchase, useIAP} from 'react-native-iap';
const App = () => {
const {
connected,
products,
promotedProductsIOS,
subscriptions,
purchaseHistories,
availablePurchases,
currentPurchase,
currentPurchaseError,
initConnectionError,
finishTransaction,
getProducts,
getSubscriptions,
getAvailablePurchases,
getPurchaseHistories,
} = useIAP();
const handlePurchase = async (sku: string) => {
await requestPurchase({sku});
};
useEffect(() => {
// ... listen to currentPurchaseError, to check if any error happened
}, [currentPurchaseError]);
useEffect(() => {
// ... listen to currentPurchase, to check if the purchase went through
}, [currentPurchase]);
return (
<>
<Button
title="Get the products"
onPress={getProducts(['com.example.consumable'])}
/>
{products.map((product) => (
<View key={product.productId}>
<Text>{product.productId}</Text>
<Button
title="Buy"
onPress={() => handlePurchase(product.productId)}
/>
</View>
))}
</>
);
};