4.4.8
0.61.5
iOS
await RNIap.requestPurchase(sku, false)
console.log('REQUEST OVER')
REQUEST OVER untuk dicetak.
Di perangkat saya menggunakan akun penguji kotak pasir, itu merespons dan bekerja dengan baik. Tetapi dengan perangkat atau simulator lain, itu tidak merespons atau menyelesaikan. Ini penting karena selama peninjauan aplikasi, Apple terus menolak aplikasi saya dengan alasan mengetuk BELI tidak merespons.
Tidak ada masalah tentang RNIap.getProducts(itemSkus)
Perangkat dan Simulator Nyata
async componentDidMount() {
RNIap.getProducts(itemSkus)
.then((products) => {
this.setState({ products: products })
})
.catch((error) => {
console.log(error.message)
})
}
requestPurchase = async (sku) => {
try {
await RNIap.requestPurchase(sku, false)
console.log('REQUESTED OVER')
} catch (err) {
console.warn(err.code, err.message)
}
}
render() {
const { products } = this.state
return (
<View>
{products.map((p, i) => { return (
<TouchableWithoutFeedback onPress={() => this.requestPurchase(p.productId)}>
<Text> BUY </Text>
</TouchableWithoutFeedback> ) })}
</View>)
Sama di sini, namun tampaknya berfungsi di Android.
Saya mungkin telah memperbaikinya dengan menambahkan
const result = menunggu RNIap.initConnection();
menunggu RNIap.consumeAllItemsAndroid();
console.log('hasil', hasil);
Di awal componentDidMount ;
Beri tahu saya jika itu membantu
@hyochan Sudahkah Anda menemukan resolusi untuk ini? Saya juga mengalami masalah yang sama di iOS. Ini sangat membuat frustrasi, dan saya tidak bisa melewati tinjauan aplikasi karena menelepon RNIap.requestPurchase tidak merespons dengan peringatan baik yang mempromosikan pengguna untuk menyetujui persyaratan berlangganan atau mengonfirmasi bahwa langganan sudah aktif. Jika saya menutup paksa aplikasi dan mencobanya lagi, terkadang berhasil. Saya tidak tahu apakah ada masalah dengan kotak pasir atau perpustakaan ini.
@smarttouchtechnology Sudahkah Anda menelepon initConnection
? Ini diperlukan dari 4.4.5
.
Mungkin sulit bagi @smarttouchtechnology untuk membaca jawaban di bawah yang "menyelesaikan" "masalah" ;)
Saya memiliki masalah yang sama dan saran @Panda313 untuk menambahkan await RNIap.initConnection()
di componentDidMount
berhasil.
Sayang sekali ini tidak didokumentasikan dengan lebih baik...
@Panda313 ... Anda baru saja menyelamatkan saya 1 minggu malam tanpa tidur dari penolakan apel
Bisakah seseorang menambahkan ini ke dokumentasi sehingga lebih banyak orang tidak mengalami masalah ini? Saya tidak yakin cara terbaik untuk menambahkannya.
EDIT: Ditambahkan di sini. #1088.
Jangan ragu untuk meninjau (saya tidak yakin saya melakukannya dengan benar.)
Saya mungkin telah memperbaikinya dengan menambahkan
const result = menunggu RNIap.initConnection();
menunggu RNIap.consumeAllItemsAndroid();
console.log('hasil', hasil);Di awal componentDidMount ;
Beri tahu saya jika itu membantu
Untuk iOS, saya tidak mendapat tanggapan dari requestSubscription
. Saya mencoba menambahkan await RNIap.initConnection();
di depan RNIap.requestSubscription
dan berhasil untuk saya. Sekarang saya menerima objek pembelian di pendengar di root aplikasi. Dan itu juga melanjutkan lebih jauh ke bawah kode setelah diselesaikan baik dalam kesalahan atau dalam respons yang berhasil.
Hai, sepertinya tidak ada aktivitas tentang masalah ini baru-baru ini. Apakah masalah sudah diperbaiki, atau masih membutuhkan perhatian masyarakat? Masalah ini dapat ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Untuk Diskusi" atau "Masalah pertama yang bagus" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.
Menutup masalah ini setelah lama tidak aktif. Jika masalah ini masih ada di rilis terbaru, jangan ragu untuk membuat masalah baru dengan informasi terkini.
Komentar yang paling membantu
Saya memiliki masalah yang sama dan saran @Panda313 untuk menambahkan
await RNIap.initConnection()
dicomponentDidMount
berhasil.Sayang sekali ini tidak didokumentasikan dengan lebih baik...