Я пытаюсь добавить покупки в приложении (или, как Google любит называть это, «В биллинге приложения») в свое собственное приложение React.
Что я сделал:
- Создан продукт в консоли Google Play (с идентификатором "unlock_premium"
yarn add react-native-iap
( эта библиотека)
- Добавлен код ниже для компонента в моем приложении
- Протестировано как с помощью
react-native run-android
на физическом устройстве, так и путем публикации его в альфа-тесте из консоли Google Play
Примечания. Приложение подписано, и в файле манифеста включены разрешения на выставление счетов, а версия react-native-iap
- 0.3.23.
Выпуск:
При запуске отладочной сборки console.log()
просто печатает, что продукт имеет значение undefined
, а productInfo
не отображается на экране при запуске развернутой версии Alpha (поэтому продукт там также не определен). Переменная products
- это просто пустой массив.
(Кажется, try
заявление выполнено успешно, поскольку я не вижу ошибок, напечатанных на нем.)
import InAppPurchase from "react-native-iap";
const itemSKUs = Platform.select({
android: [
"com.kimer.unlock_premium" // I've also tried just "unlock_premium"
]
})
...
constructor(props) {
super(props);
this.state = {
modalVisible: false,
premiumProduct: undefined
};
}
...
async componentDidMount() {
try {
await InAppPurchase.prepare();
const products = await InAppPurchase.getProducts(itemSKUs);
console.log("finished call to get products");
console.log(products[0]);
this.setState({premiumProduct: products[0]});
} catch (err) {
console.warn(err);
}
}
...
render() {
let productInfo;
if (this.state.premiumProduct !== undefined) {
productInfo = (
<Text>{this.state.premiumProduct}
{this.state.premiumProduct.localizedPrice}
{this.state.premiumProduct.currency} {this.state.premiumProduct.productID}
{this.state.premiumProduct.title}
{this.state.premiumProduct.description}</Text>
);
}
return (
<View>
...
{productInfo}
...
</View>
);
}