1,20
ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° iOS
ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ
ΠΡΠΈΠ±ΠΊΠ° RNIap.getSubscriptions: [TypeError: undefined Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ (ΠΎΡΠ΅Π½ΠΊΠ° 'RNIapIos.getItems')]
ΠΈ ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅
`` ''
const itemSkus = Platform.select ({
ios: [
'com.shares.sharesapp', // Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ['BASIC', 'CLASSIC', 'MAX', 'PLUS'] ..
],
android: [
'com.shares.sharesapp',
],
});
async componentDidMount () {
ΠΏΡΡΠ°ΡΡΡΡ {
ΠΆΠ΄Π°ΡΡ RNIap.prepare ();
}
catch (err1) {
console.log ("ΠΡΠΈΠ±ΠΊΠ° RNIap.prepare:", err1);
}
Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ {
console.log ("Π½Π°ΠΊΠΎΠ½Π΅Ρ");
ΠΏΡΡΠ°ΡΡΡΡ {
const products = await RNIap.getSubscriptions (itemSkus);
console.log (Β«ΠΠΎΠ΄ΠΏΠΈΡΠΊΠΈΒ», ΠΏΡΠΎΠ΄ΡΠΊΡΡ);
}
catch (err) {
console.log ("ΠΡΠΈΠ±ΠΊΠ° RNIap.getSubscriptions:", ΠΎΡΠΈΠ±ΠΊΠ°);
}
}
}
`` ''
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅
ΠΈ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΠΈΠΌΠ΅Ρ ΡΡΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅
ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ Π² App Store Connect
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΌΠ½Π΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠΎ Π² Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΠΎΡΠΌΠ΅?
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Ρ
const purchases = await RNIap.getAvailablePurchases();
console.info('Available purchases :: ', purchases);
ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅:
RNIap.getSubscriptions error : [TypeError: undefined is not an object (evaluating 'RNIapIos.getAvailableItems')]
Π ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ProductID Π½Π° com.shares.sharesapp.basic Π² App Store Connect ΠΈ
const itemSkus = Platform.select({
ios: [
'com.shares.sharesapp.basic'
],
ΠΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΡΡΠΏΠ΅Ρ
ΠΎΠ² ...
ΠΡΠΈΡΠ»ΠΎΡΡ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ...
`` ''
Π ΡΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
iOS
In XCode, in the project navigator, right click Libraries β Add Files to [your project's name]
Go to node_modules β react-native-iap and add RNIap.xcodeproj
In XCode, in the project navigator, select your project. Add libRNIap.a to your project's Build Phases β Link Binary With Libraries
Run your project (Cmd+R)
`` ''
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠΏΡΠΎΡΠΈΠ» ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ (ΡΠ½Π°ΡΠ°Π»Π° ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅), Ρ Π²ΠΎΡΠ΅Π» Π² ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Sandbox, Ρ ΡΠΌΠΎΠ³ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ΅ π
async componentDidMount() {
try {
await RNIap.prepare();
}
catch (err1) {
console.log("RNIap.prepare error : ", err1);
}
finally {
console.log("finally");
try {
console.log("itemSkus : ", itemSkus);
const products = await RNIap.getSubscriptions(itemSkus);
console.log('Subscriptions', products);
}
catch (err) {
console.log("RNIap.getSubscriptions error : ", err);
}
}
}
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ :
itemSkus : Array [
"com.shares.sharesapp.basic",
]
Subscriptions Array [
Object {
"currency": "EUR",
"description": "***",
"localizedPrice": "3,99Β β¬",
"price": "3.99",
"productId": "com.shares.sharesapp.basic",
"title": "Abonnement BASIQUE",
"type": "Do not use this. It returned sub only before",
},
]
FYI, RNIap.getSubscriptions (itemSkus) ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΈΡΠ»ΠΎΡΡ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ...
`` ''
Π ΡΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
iOS
`` ''