React-native-iap: Pembelian dalam aplikasi di expo

Dibuat pada 31 Mei 2018  ·  38Komentar  ·  Sumber: dooboolab/react-native-iap

Halo,

Kami menggunakan Expo untuk membuat proyek kami. Dalam proyek kami, satu topik penting adalah pembelian dalam aplikasi. Bisakah kamu membantuku
bagaimana menerapkan pembelian dalam aplikasi menggunakan expo dan langkah-langkah apa yang perlu kita ikuti untuk mengimplementasikan ini.

❓ question 🚶🏻 stale

Komentar yang paling membantu

Secara sederhana:

  • buat cabang baru detached
  • jalankan exp detach
  • melakukan semua hal yang biasa Anda lakukan
  • beralih kembali ke master untuk menambahkan kode js
  • ketika membuat kode dalam master bungkus kode modul IAP Anda dengan yang berikut:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Dengan cara ini kode Anda tidak akan mogok saat memanggil metode IAP
  • Saat menerapkan atau menguji IAP, gunakan cabang yang terpisah - atau lewati saja semua cabang dan lakukan penipu> :)

Ide umumnya di sini adalah exp detach hanya memunculkan folder /ios & /android sehingga Anda dapat menggunakan proyek Anda sebagai aplikasi RN.
Anda masih akan mendapatkan semua fungsionalitas aplikasi Expo biasa, cukup gunakan fastlane untuk menerapkan sehingga Anda tidak perlu menggunakan terlalu banyak barang asli.
Terakhir, cabang tersebut berguna untuk memperbarui versi SDK. Jika Anda karena alasan tertentu mengalami masalah saat memperbarui, Anda bisa melepaskannya lagi dan menambahkan lib ini sekali lagi.

Semua 38 komentar

Secara sederhana:

  • buat cabang baru detached
  • jalankan exp detach
  • melakukan semua hal yang biasa Anda lakukan
  • beralih kembali ke master untuk menambahkan kode js
  • ketika membuat kode dalam master bungkus kode modul IAP Anda dengan yang berikut:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Dengan cara ini kode Anda tidak akan mogok saat memanggil metode IAP
  • Saat menerapkan atau menguji IAP, gunakan cabang yang terpisah - atau lewati saja semua cabang dan lakukan penipu> :)

Ide umumnya di sini adalah exp detach hanya memunculkan folder /ios & /android sehingga Anda dapat menggunakan proyek Anda sebagai aplikasi RN.
Anda masih akan mendapatkan semua fungsionalitas aplikasi Expo biasa, cukup gunakan fastlane untuk menerapkan sehingga Anda tidak perlu menggunakan terlalu banyak barang asli.
Terakhir, cabang tersebut berguna untuk memperbarui versi SDK. Jika Anda karena alasan tertentu mengalami masalah saat memperbarui, Anda bisa melepaskannya lagi dan menambahkan lib ini sekali lagi.

Pertanyaannya adalah mengapa Anda mulai dengan Expo di tempat pertama.

@Islam

Setidaknya bagi saya, lingkungan pengembangan Expo jauh lebih mudah untuk dikerjakan daripada harus membuat build asli. Selain itu, memiliki layanan notifikasi push multi-platform gratis dengan antarmuka tunggal juga sangat nyaman.

@Kevolution_ Saya mengerti karena saya telah menjadi pengguna expo yang berat sebelumnya. Saya sangat ingin expo mengintegrasikan modul iap . Namun saya mengerti tidak mudah bagi expo untuk menjaga lingkungannya termasuk fitur iap . Apple akan menolak aplikasi Expo Client di toko aplikasi terlebih dahulu.

@doobool

Seperti yang telah diusulkan orang lain, saya akan tenang jika itu hanya dimatikan untuk pengujian. Saya suka pameran untuk pengalaman dev.

Saya sedang mempertimbangkan untuk memecahnya menjadi cabangnya sendiri di git dan menjaga agar cabang dev tetap ramah. Setelah waktunya untuk penerapan, saya bisa menggabungkan kode yang dikeluarkan, mengujinya, dan mereka menerapkan aplikasi.

@ImArtur pertanyaannya adalah "Pembelian dalam aplikasi di pameran". Anda dapat membaca tentang pro dan kontra Expo di sini: https://docs.expo.io/versions/latest/introduction/why-not-expo

@Evanacon

Halo dan terima kasih untuk artikel ini! Saya bertanya-tanya apakah (setelah melepaskan) Anda diharapkan untuk terus membangun dengan exp, atau dengan xcode, di cabang "terpisah"? Terima kasih!

@EvanBacon juga, bagaimana Anda menguji ini di iOS? Apakah Anda mendorong build baru lalu mengujinya di sana atau adakah cara untuk menguji IAPs secara lokal sebelumnya?

Jika saya tahu saya akan memerlukan pembelian dalam aplikasi pada suatu saat dalam pengembangan, apakah saya masih harus menggunakan CRNA? atau langsung ke RN native dari awal?

Kecuali, tentu saja, expo devs segera mengimplementasikan pembelian dalam aplikasi expo.

@edoantonioco Saya sudah mengerjakan ini dengan expo. Saya hanya membuat halaman dengan tombol iap untuk membeli item dan hanya menekan tombol tersebut saat saya menguji pembelian dan membangun dengan Xcode. Kalau tidak, saya membangun dengan expo. Bekerja dengan baik!

Maaf atas keterlambatannya. Saat Anda melepaskan, Anda menambahkan kode asli dan membangunnya ke perangkat Anda. Anda kemudian menggunakan build itu seperti klien expo (kecuali hanya untuk aplikasi tunggal Anda). Saya masih merekomendasikan untuk tetap menggunakan Expo. CRNA dikelola oleh Expo dan fokus kami sebagian besar adalah membuat perpustakaan berfungsi di lingkungan itu. Vanilla React Native akan membutuhkan banyak pengaturan yang tidak dibutuhkan dan akan meminta Anda untuk mengetahui lebih banyak tentang cara kerja modul.

Halo, sekarang setelah Anda membahas subjeknya. Jika pembelian dalam aplikasi agak "sulit" untuk ditangani oleh Expo. Apa peta jalan yang disarankan untuk memonetisasi Aplikasi tanpa melepaskannya dari Expo, karena bagi saya, seperti banyak orang lain, saya menggunakan Expo karena fakta bahwa keseluruhan pengalaman jauh lebih ramah daripada RN dan jauh lebih rumit daripada menjadi asli di kedua platform . Jadi, bisakah Anda menggunakan paket berlangganan dengan PayPal atau menerima pembayaran melalui kartu kredit? Apakah itu diizinkan oleh Google dan Apple untuk dipasang, di dalam Aplikasi Expo Anda dengan menggunakan tampilan web misalnya? Terima kasih.

@inglesivers

Jika ada manfaatnya, kami akhirnya membuang expo karena kami bosan menunggu masalah seperti ini diselesaikan.

Ini pasti menambah gesekan pada pengujian dan untuk mendukung beberapa fitur (seperti notifikasi), tetapi setidaknya pengembang saya dapat berhenti memberi tahu saya, "itu tidak mungkin karena expo tidak mendukungnya".

Expo baru-baru ini mengumumkan tentang rencana masa depan pada tahun 2019. Anda akan dapat menautkan native modules kemudian.

Saya telah mencoba membuat kode @EvanBacon di atas berfungsi tetapi NativeModules saya kosong dan akibatnya RNIapModule tidak ditentukan. (setidaknya di iOS)

Apakah orang lain mengalami masalah ini? Apakah ini berarti saya tidak ditautkan dengan benar?

FWIW, tautan react-native tampaknya berfungsi ....

$ react-native link react-native-iap
rnpm-install info Linking react-native-iap ios dependency 
rnpm-install info Platform 'ios' module react-native-iap has been successfully linked 
rnpm-install info Linking react-native-iap android dependency 
rnpm-install info Platform 'android' module react-native-iap has been successfully linked 

tetapi saya curiga saya mungkin perlu menautkan secara manual yang sejauh ini belum dapat saya lakukan. Saya tidak dapat menemukan folder perpustakaan.
https://forums.expo.io/t/trouble-linking-with-expokit-unable-to-find-libraries-in-xcode/16710

@Evanacon Halo Pak,
Bisakah Anda memberi tahu saya secara detail?
Saya mencoba RN iap saya menautkannya
lalu saya exp terlepas.
lalu saya pergi ke ios dir dan menjalankan pod install sekarang sudah menginstal semuanya
apa yang harus saya lakukan selanjutnya?
Terima kasih

@cellis dapatkah Anda ceritakan lebih lanjut bagaimana Anda membuat aplikasi ini bekerja yang saya coba selama 1 minggu sekarang, bisakah Anda menunjukkan kodenya?
Terima kasih
dan apakah Anda membangun dengan expo atau xcode setelah pemasangan pod?
Terima kasih

melakukan semua hal yang biasa Anda lakukan
beralih kembali ke master untuk menambahkan kode js
saat membuat kode di master, bungkus kode modul IAP Anda dengan yang berikut:
@EvanBacon apa arti baris di atas?

Secara sederhana:

  • buat cabang baru detached
  • jalankan exp detach
  • melakukan semua hal yang biasa Anda lakukan
  • beralih kembali ke master untuk menambahkan kode js
  • ketika membuat kode dalam master bungkus kode modul IAP Anda dengan yang berikut:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Dengan cara ini kode Anda tidak akan mogok saat memanggil metode IAP
  • Saat menerapkan atau menguji IAP, gunakan cabang yang terpisah - atau lewati saja semua cabang dan lakukan penipu> :)

Ide umumnya di sini adalah exp detach hanya memunculkan folder /ios & /android sehingga Anda dapat menggunakan proyek Anda sebagai aplikasi RN.
Anda masih akan mendapatkan semua fungsionalitas aplikasi Expo biasa, cukup gunakan fastlane untuk menerapkan sehingga Anda tidak perlu menggunakan terlalu banyak barang asli.
Terakhir, cabang tersebut berguna untuk memperbarui versi SDK. Jika Anda karena alasan tertentu mengalami masalah saat memperbarui, Anda bisa melepaskannya lagi dan menambahkan lib ini sekali lagi.

Hai Evan,
terima kasih atas sarannya. Saya telah mengikuti saran tersebut dan tidak ada kesalahan (saya telah menautkan react-native-iap secara manual). Namun, fungsi hasIAP menampilkan false meskipun RNIap.initConnection (); mengembalikan true. Saya mengujinya dengan potongan kode sederhana ini.

async componentDidMount() {
    try {
      const result = await RNIap.initConnection();
      console.log("hasIAP " + hasIAP())  // returns false
      console.log('result', result);   // returns true
    } catch (err) {
      console.warn(err.code, err.message);
    }
}

Tahukah Anda apa masalahnya? (Atau siapa pun yang membaca ini)

Seperti pengguna sebelumnya di posting ini, itu adalah niat terbaik Expo untuk kuartal pertama ini untuk mengimplementasikan cara membangun aplikasi dan juga dapat mengimpor pustaka asli React Native. Sekarang ini menunjukkan Beta ketika memulai proyek baru dengan CLI. Semoga ini segera diperbaiki.

Halo, sepertinya tidak ada aktivitas terkait masalah ini akhir-akhir ini. Apakah masalah sudah diperbaiki, atau masih membutuhkan perhatian masyarakat? Masalah ini mungkin ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Untuk Diskusi" atau "Edisi pertama yang baik" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Harap tetap buka dan bantu kami menemukan cara untuk mewujudkannya mulai Expo SDK version 33.0

Adakah yang punya pembaruan tentang masalah ini?

https://docs.expo.io/versions/latest/sdk/in-app-purchases/

Pembaruan: Maaf, melewatkan yang berikut:

Modul ini saat ini hanya tersedia di alur kerja kosong.

@kkarkos Menggunakan modul pembelian dalam aplikasi milik Expo, Anda masih harus mengeluarkan aplikasi Expo Anda (untuk beberapa waktu mendatang), jadi itu tidak benar-benar menyelesaikan masalah.

Jika ada yang bisa memberikan panduan yang lebih menyeluruh tentang cara menipu @EvanBacon yang kami jelaskan, silakan bagikan. Mungkin bahkan aplikasi demo?

@TheInternet Saya mengalami masalah yang sama dengan folder "Perpustakaan" yang hilang. Apakah Anda mengetahui cara menginstal ini dengan benar di iOS?

@inglesivers
Saya menarik, apakah Anda sudah menemukan cara menarik untuk memonetisasi aplikasi tanpa melepaskannya dari expo?

Bisakah kita menggunakan pembayaran elektronik dengan webView? Apakah itu legal?

Sejauh yang saya tahu, Anda dapat menggunakan solusi pihak ketiga sebagai aplikasi web (seperti stripe atau PayPal) tetapi di dalam AppStore atau PlayStore Anda tidak bisa. Jika tidak, aplikasi Anda dapat dikeluarkan atau dihapus sampai Anda melakukannya dengan cara yang benar melalui API yang telah kita semua tunggu-tunggu sejak saya mulai menggunakan Expo.

Anda dapat menggunakan Stripe atau Paypal di aplikasi Anda selama Anda membeli barang dan layanan eksternal (seperti saat Anda membeli produk di amazon atau membayar di aplikasi Uber), tetapi Anda tidak dapat menggunakan Stripe untuk membuka fitur perangkat lunak aplikasi (seperti menjual token game atau fitur premium)

Terima kasih KevinColemanInc atas komentarnya ... Apakah Anda kebetulan tahu jika menjual keanggotaan atau pembayaran berulang untuk penyewaan film, penyimpanan cloud, kursus online ... Bisakah itu dibayar secara eksternal menggunakan Stripe atau PayPal dalam Aplikasi -> (PlayStore atau AppStore) ? Terima kasih atas tanggapan Anda!

@inglesivers

Jika Anda ingin membuka fitur atau fungsionalitas dalam aplikasi Anda, (misalnya: langganan, mata uang dalam game, level game, akses ke konten premium, atau membuka kunci versi lengkap)

Ini adalah pedoman dari Apple:
https://developer.apple.com/app-store/review/guidelines/#in -app-purchase

Saya pikir sebagian besar dari apa yang Anda gambarkan akan termasuk dalam "konten premium". Netflix diharuskan membayar pajak apel .

Sepertinya Dropbox juga membayar pajak apel jika Anda mendaftar di perangkat seluler. Saya akan memeriksa aplikasi Udemy untuk melihat apakah mereka juga menggunakan IAP.

Halo, sepertinya tidak ada aktivitas terkait masalah ini akhir-akhir ini. Apakah masalah sudah diperbaiki, atau masih membutuhkan perhatian masyarakat? Masalah ini mungkin ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Untuk Diskusi" atau "Edisi pertama yang baik" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Secara sederhana:

  • buat cabang baru detached
  • jalankan exp detach
  • melakukan semua hal yang biasa Anda lakukan
  • beralih kembali ke master untuk menambahkan kode js
  • ketika membuat kode dalam master bungkus kode modul IAP Anda dengan yang berikut:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Dengan cara ini kode Anda tidak akan mogok saat memanggil metode IAP
  • Saat menerapkan atau menguji IAP, gunakan cabang yang terpisah - atau lewati saja semua cabang dan lakukan penipu> :)

Ide umumnya di sini adalah exp detach hanya memunculkan folder /ios & /android sehingga Anda dapat menggunakan proyek Anda sebagai aplikasi RN.
Anda masih akan mendapatkan semua fungsionalitas aplikasi Expo biasa, cukup gunakan fastlane untuk menerapkan sehingga Anda tidak perlu menggunakan terlalu banyak barang asli.
Terakhir, cabang tersebut berguna untuk memperbarui versi SDK. Jika Anda karena alasan tertentu mengalami masalah saat memperbarui, Anda bisa melepaskannya lagi dan menambahkan lib ini sekali lagi.

Maaf terlalu padat, tetapi apakah ini berarti Anda menambahkan kode IAP ke setiap cabang secara terpisah (jika Anda harus 'membungkusnya' untuk cabang expo) & kemudian keluarkan kembali di cabang baru setiap kali Anda menambahkan expo code ke master atau apakah Anda menggabungkan cabang kapan saja ??! Dan apakah ini masih cara terbaik untuk menambahkan IAP ke aplikasi pameran terkelola? Saya baru saja menyelesaikan aplikasi besar pertama saya dan perlu menambahkan fungsionalitas ini entah bagaimana & melakukannya di cabang tampaknya merupakan opsi aman yang baik - Saya hanya ingin memastikan bahwa saya memahami alur kerja! Saya juga harus mengatakan saya suka pameran! Ini adalah cara yang brilian untuk bereaksi asli dan tanpanya saya tidak akan pernah sejauh ini jadi terima kasih dan pertahankan kerja bagus !!!

Halo, sepertinya tidak ada aktivitas terkait masalah ini akhir-akhir ini. Apakah masalah sudah diperbaiki, atau masih membutuhkan perhatian masyarakat? Masalah ini mungkin ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Untuk Diskusi" atau "Edisi pertama yang baik" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Menutup masalah ini setelah tidak aktif dalam waktu lama. Jika masalah ini masih ada di rilis terbaru, silakan membuat masalah baru dengan informasi terbaru.

Secara sederhana:

  • buat cabang baru detached
  • jalankan exp detach
  • melakukan semua hal yang biasa Anda lakukan
  • beralih kembali ke master untuk menambahkan kode js
  • ketika membuat kode dalam master bungkus kode modul IAP Anda dengan yang berikut:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • Dengan cara ini kode Anda tidak akan mogok saat memanggil metode IAP
  • Saat menerapkan atau menguji IAP, gunakan cabang yang terpisah - atau lewati saja semua cabang dan lakukan penipu> :)

Ide umumnya di sini adalah exp detach hanya memunculkan folder /ios & /android sehingga Anda dapat menggunakan proyek Anda sebagai aplikasi RN.
Anda masih akan mendapatkan semua fungsionalitas aplikasi Expo biasa, cukup gunakan fastlane untuk menerapkan sehingga Anda tidak perlu menggunakan terlalu banyak barang asli.
Terakhir, cabang tersebut berguna untuk memperbarui versi SDK. Jika Anda karena alasan tertentu mengalami masalah saat memperbarui, Anda bisa melepaskannya lagi dan menambahkan lib ini sekali lagi.

Maaf terlalu padat, tetapi apakah ini berarti Anda menambahkan kode IAP ke setiap cabang secara terpisah (jika Anda harus 'membungkusnya' untuk cabang expo) & kemudian keluarkan kembali di cabang baru setiap kali Anda menambahkan expo code ke master atau apakah Anda menggabungkan cabang kapan saja ??! Dan apakah ini masih cara terbaik untuk menambahkan IAP ke aplikasi pameran terkelola? Saya baru saja menyelesaikan aplikasi besar pertama saya dan perlu menambahkan fungsionalitas ini entah bagaimana & melakukannya di cabang tampaknya merupakan opsi aman yang baik - Saya hanya ingin memastikan bahwa saya memahami alur kerja! Saya juga harus mengatakan saya suka pameran! Ini adalah cara yang brilian untuk bereaksi asli dan tanpanya saya tidak akan pernah sejauh ini jadi terima kasih dan pertahankan kerja bagus !!!

Hai! Apakah Anda sudah menemukan jawabannya? Bagaimana Anda menerapkannya?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat