React-native-iap: في شراء التطبيق في المعرض

تم إنشاؤها على ٣١ مايو ٢٠١٨  ·  38تعليقات  ·  مصدر: dooboolab/react-native-iap

مرحبا،

نحن نستخدم Expo لإنشاء مشروعنا. موضوع واحد مهم في مشروعنا هو الشراء داخل التطبيق. هل يمكنك مساعدتي
كيفية تنفيذ الشراء داخل التطبيق باستخدام المعرض وما هي الخطوات الضرورية التي يتعين علينا اتباعها لتنفيذ ذلك.

❓ question 🚶🏻 stale

التعليق الأكثر فائدة

ببساطة:

  • إنشاء فرع جديد detached
  • تشغيل exp detach
  • تفعل كل نفس الأشياء التي تفعلها عادة
  • عد إلى master لإضافة كود js
  • عند الترميز في master بلف كود وحدة IAP الخاص بك بما يلي:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • بهذه الطريقة لن يتعطل الرمز الخاص بك عند استدعاء طرق IAP
  • عند نشر IAP أو اختباره ، استخدم الفرع المنفصل - أو فقط تخطي الفروع تمامًا وانتقل إلى المارقة> :)

الفكرة العامة هنا هي أن exp detach فقط مجلد /ios & /android حتى تتمكن من استخدام مشروعك كتطبيق RN.
ستظل تحصل على جميع وظائف تطبيق Expo العادي ، ما عليك سوى استخدام fastlane للنشر حتى لا تحتاج إلى استخدام الكثير من العناصر الأصلية.
أخيرًا ، الفروع مفيدة لتحديث إصدارات SDK. إذا كنت تواجه مشكلة في التحديث لسبب ما ، فيمكنك فصله مرة أخرى وإضافة هذا lib مرة أخرى.

ال 38 كومينتر

ببساطة:

  • إنشاء فرع جديد detached
  • تشغيل exp detach
  • تفعل كل نفس الأشياء التي تفعلها عادة
  • عد إلى master لإضافة كود js
  • عند الترميز في master بلف كود وحدة IAP الخاص بك بما يلي:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • بهذه الطريقة لن يتعطل الرمز الخاص بك عند استدعاء طرق IAP
  • عند نشر IAP أو اختباره ، استخدم الفرع المنفصل - أو فقط تخطي الفروع تمامًا وانتقل إلى المارقة> :)

الفكرة العامة هنا هي أن exp detach فقط مجلد /ios & /android حتى تتمكن من استخدام مشروعك كتطبيق RN.
ستظل تحصل على جميع وظائف تطبيق Expo العادي ، ما عليك سوى استخدام fastlane للنشر حتى لا تحتاج إلى استخدام الكثير من العناصر الأصلية.
أخيرًا ، الفروع مفيدة لتحديث إصدارات SDK. إذا كنت تواجه مشكلة في التحديث لسبب ما ، فيمكنك فصله مرة أخرى وإضافة هذا lib مرة أخرى.

السؤال هو لماذا تبدأ مع إكسبو في المقام الأول.

تضمين التغريدة

على الأقل بالنسبة لي ، فإن بيئة تطوير إكسبو أسهل بكثير للعمل معها من الاضطرار إلى إنشاء بنيات محلية. أيضًا ، يعد الحصول على خدمة إعلام دفع مجانية متعددة المنصات بواجهة فردية أمرًا مريحًا للغاية.

KevinColemanInc نعم. أفهم ذلك لأنني كنت مستخدمًا كثيفًا للمعرض سابقًا. أريد حقًا أن يدمج المعرض وحدة iap . ومع ذلك ، أدرك أنه ليس من السهل على إكسبو الحفاظ على بيئته بما في ذلك ميزة iap . سترفض Apple تطبيق Expo Client في متجر التطبيقات أولاً.

تضمين التغريدة

كما اقترح آخرون ، سأكون رائعًا إذا تم إيقافه للاختبار. أنا فقط أحب المعرض لتجربة التطوير.

أفكر في تقسيمه إلى فرع خاص به في git والحفاظ على ودية معرض فرع dev. بمجرد أن يحين وقت النشر ، يمكنني دمج الشفرة التي تم إخراجها واختبارها ونشر التطبيق.

@ ImArtur السؤال هو "شراء داخل التطبيق في المعرض". يمكنك أن تقرأ عن إيجابيات وسلبيات إكسبو هنا: https://docs.expo.io/versions/latest/introduction/why-not-expo

تضمين التغريدة

مرحبا وشكرا على هذه الكتابة! أتساءل عما إذا كان من المفترض (بعد الفصل) الاستمرار في الإنشاء باستخدام exp ، أو باستخدام xcode ، في الفرع "المنفصل"؟ شكر!

EvanBacon أيضًا ، كيف تختبر هذا على iOS؟ هل تدفع تصميمًا جديدًا ثم تختبره هناك أم أن هناك طريقة لاختبار iaps محليًا من قبل؟

إذا علمت أنني سأحتاج إلى عمليات شراء داخل التطبيق في مرحلة ما من التطوير ، فهل لا يزال يتعين علي استخدام CRNA؟ أو الذهاب مباشرة إلى RN الأصلي من البداية؟

ما لم يكن بالطبع ، فإن expo devs ينفذون شراء expo داخل التطبيق قريبًا جدًا.

edoantonioco لقد حصلت على هذا العمل مع المعرض. أقوم فقط بإنشاء صفحة تحتوي على أزرار iap لشراء العناصر والضغط فقط على هذه الأزرار عندما أقوم باختبار عمليات الشراء والبناء باستخدام Xcode. وإلا أبني مع المعرض. يعمل بشكل رائع!

نأسف على التأخير. عندما تنفصل ، فإنك تضيف رمزًا أصليًا وتبنيه على جهازك. يمكنك بعد ذلك استخدام هذا التصميم مثل عميل المعرض (باستثناء تطبيقك المفرد فقط). ما زلت أوصي بالالتزام بـ Expo. يتم صيانة CRNA بواسطة Expo وينصب تركيزنا في الغالب على جعل المكتبات تعمل في تلك البيئة. سيتطلب Vanilla React Native الكثير من الإعداد غير الضروري وسيتطلب منك معرفة المزيد عن الأعمال الداخلية للوحدات.

مرحبًا ، الآن بعد أن طرحت الموضوع. إذا كان من الصعب التعامل مع عمليات الشراء داخل التطبيق من قبل Expo. ما هي خرائط الطريق المقترحة لتحقيق الدخل من تطبيق ما دون فصله عن Expo ، لأنني ، مثل كثيرين آخرين ، أستفيد من Expo لحقيقة أن التجربة الإجمالية أكثر ودية من RN وأقل تعقيدًا بكثير من الانتقال محليًا على كلا النظامين الأساسيين . لذا ، هل يمكنك فقط استخدام خطة اشتراك مع PayPal أو تلقي المدفوعات من خلال بطاقات الائتمان؟ هل تسمح Google و Apple بالتضمين داخل تطبيق Expo الخاص بك باستخدام عرض الويب على سبيل المثال؟ شكر.

تضمين التغريدة

إذا كان الأمر يستحق أي شيء ، فقد انتهى بنا الأمر إلى إغراق المعرض لأننا سئمنا انتظار حل مشكلات مثل هذه.

إنه بالتأكيد يضيف احتكاكًا للاختبار ودعم بعض الميزات (مثل الإخطارات) ، ولكن على الأقل يمكن لمطوري التوقف عن إخباري ، "هذا مستحيل لأن المعرض لا يدعمه".

أعلن إكسبو عن هذا مؤخرًا بشأن الخطة المستقبلية لعام 2019. ستتمكن من ربط native modules حينها.

لقد كنت أحاول عمل كودEvanBacon أعلاه ولكن NativeModules الخاص بي فارغ ونتيجة لذلك فإن RNIapModule غير محدد. (على iOS على الأقل)

هل واجه الآخرون هذه المشكلة؟ هل هذا يعني أنني غير مرتبط بشكل صحيح؟

FWIW ، يبدو أن ارتباط التفاعل الأصلي قد نجح ...

$ 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 

لكني أظن أنني قد أحتاج إلى الربط يدويًا وهو ما لم أتمكن من فعله حتى الآن. لا يمكنني العثور على مجلد مكتبات.
https://forums.expo.io/t/trouble-linking-with-expokit-unable-to-find-libraries-in-xcode/16710

EvanBacon مرحبا سيدي ،
هل يمكنك إخباري بالتفاصيل من فضلك؟
لقد جربت RN iap لقد ربطته
ثم أنا أكسب منفصلة.
ثم انتقلت إلى ios dir وقمت بتشغيل تثبيت pod الآن وهو يقوم بتثبيت كل شيء
ماذا علي أن أفعل بعد ذلك؟
شكر

cellis ، هل يمكن أن تخبرني المزيد عن كيفية قيامك بعمل inapp الذي أحاوله لمدة أسبوع واحد الآن ، هل يمكنك إظهار الرمز من فضلك؟
شكر
وهل قمت بالبناء باستخدام expo أو xcode بعد تثبيت pod؟
شكر

تفعل كل نفس الأشياء التي تفعلها عادة
عد إلى المستوى الرئيسي لإضافة كود js
عند الترميز بشكل رئيسي ، قم بلف كود وحدة IAP الخاص بك بما يلي:
EvanBacon ما معنى الأسطر أعلاه؟

ببساطة:

  • إنشاء فرع جديد detached
  • تشغيل exp detach
  • تفعل كل نفس الأشياء التي تفعلها عادة
  • عد إلى master لإضافة كود js
  • عند الترميز في master بلف كود وحدة IAP الخاص بك بما يلي:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • بهذه الطريقة لن يتعطل الرمز الخاص بك عند استدعاء طرق IAP
  • عند نشر IAP أو اختباره ، استخدم الفرع المنفصل - أو فقط تخطي الفروع تمامًا وانتقل إلى المارقة> :)

الفكرة العامة هنا هي أن exp detach فقط مجلد /ios & /android حتى تتمكن من استخدام مشروعك كتطبيق RN.
ستظل تحصل على جميع وظائف تطبيق Expo العادي ، ما عليك سوى استخدام fastlane للنشر حتى لا تحتاج إلى استخدام الكثير من العناصر الأصلية.
أخيرًا ، الفروع مفيدة لتحديث إصدارات SDK. إذا كنت تواجه مشكلة في التحديث لسبب ما ، فيمكنك فصله مرة أخرى وإضافة هذا lib مرة أخرى.

مرحبا ايفان ،
شكرا لك على الاقتراح. لقد اتبعت النصيحة وليس لدي أي أخطاء (لقد ربطت رد فعل أصلي - iap يدويًا) ومع ذلك ، تقوم دالة hasIAP بإرجاع false على الرغم من أن RNIap.initConnection ()؛ يعود صحيحا. أختبرها باستخدام هذا الجزء البسيط من الكود.

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);
    }
}

هل تعرف ماذا يمكن أن يكون المشكلة؟ (أو أي شخص يقرأ هذا)

وفقًا للمستندات ، https://docs.expo.io/versions/v32.0.0/sdk/payments/ ، هل أعددت المدفوعات على جهازك؟ (لن يكون من المنطقي اختبار المحاكاة باستخدام)

مثل مستخدم سابق في هذا المنشور ، فإن أفضل نية من Expo في الربع الأول من هذا العام هي تنفيذ طريقة لإنشاء التطبيقات وأيضًا القدرة على استيراد مكتبات React Native الأصلية. يعرض الآن إصدارًا تجريبيًا عند بدء مشروع جديد باستخدام CLI. أتمنى أن يتم إصلاح هذا قريبا.

مرحبًا ، يبدو أنه لم يكن هناك أي نشاط بشأن هذه المشكلة مؤخرًا. هل تم إصلاح المشكلة أم أنها لا تزال تتطلب اهتمام المجتمع؟ قد يتم إغلاق هذه المشكلة في حالة عدم حدوث أي نشاط آخر. يمكنك أيضًا تصنيف هذه المشكلة على أنها "للمناقشة" أو "مشكلة أولى جيدة" وسأتركها مفتوحة. شكرا لمساهماتكم.

يرجى الاحتفاظ به مفتوحًا ومساعدتنا في إيجاد طريقة لجعل ذلك حقيقة واقعة بدءًا من Expo SDK الإصدار 33.0

هل لدى أي شخص أي تحديثات حول هذه المسألة؟

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

تحديث: عذرا ، فاتك التالي:

هذه الوحدة متاحة حاليًا فقط في سير العمل العاري.

kkarkos باستخدام وحدة الشراء داخل التطبيق الخاصة بـ Expo ، لا يزال يتعين عليك إخراج تطبيق Expo الخاص بك (في المستقبل المنظور) ، لذلك لا يحل المشكلة حقًا.

إذا كان بإمكان أي شخص أن يقدم دليلاً أكثر شمولاً حول كيفية خداع EvanBacon الذي

@ TheInternet أواجه نفس المشكلة مع مجلد "Libraries" المفقود. هل اكتشفت كيفية تثبيت هذا بشكل صحيح على iOS؟

تضمين التغريدة
أنا ممتع ، هل وجدت طرقًا مثيرة للاهتمام لاستثمار تطبيق ما دون فصله عن المعرض؟

هل يمكننا استخدام المدفوعات الإلكترونية مع webView؟ هل هو قانوني؟

على حد علمي ، يمكنك استخدام حلول الجهات الخارجية كتطبيق ويب (مثل الشريط أو PayPal) ولكن لا يمكنك ذلك داخل AppStore أو PlayStore. وإلا فقد يتم طرد تطبيقك أو إزالته حتى تقوم بذلك بالطريقة الصحيحة من خلال واجهة برمجة التطبيقات التي كنا ننتظرها جميعًا منذ أن بدأت في استخدام Expo.

يمكنك استخدام Stripe أو Paypal في تطبيقك طالما أنك تشتري سلعًا وخدمات خارجية (مثل شراء منتج من Amazon أو الدفع في تطبيق Uber) ، ولكن لا يمكنك استخدام Stripe لإلغاء تأمين ميزات برنامج التطبيق (مثل بيع رموز اللعبة أو الميزات المميزة)

شكرًا KevinColemanInc على التعليق ... هل تعرف ما إذا كنت تبيع عضويات أو مدفوعات متكررة لاستئجار الأفلام أو التخزين السحابي أو الدورات التدريبية عبر الإنترنت ... هل يمكن دفعها خارجيًا باستخدام Stripe أو PayPal داخل أحد التطبيقات -> (PlayStore أو AppStore) ؟ شكرا لملاحظاتك!

تضمين التغريدة

إذا كنت ترغب في فتح ميزات أو وظائف داخل تطبيقك (على سبيل المثال: الاشتراكات أو العملات داخل اللعبة أو مستويات اللعبة أو الوصول إلى المحتوى المتميز أو فتح إصدار كامل)

هذه هي إرشادات Apple:
https://developer.apple.com/app-store/review/guidelines/#in -app-buy

أعتقد أن معظم ما وصفته يندرج ضمن "المحتوى المتميز". مطلوب Netflix لدفع ضريبة Apple .

يبدو أن Dropbox يدفع أيضًا ضريبة Apple إذا قمت بالتسجيل معهم على الهاتف المحمول. أود الخروج من تطبيق Udemy لمعرفة ما إذا كانوا يستخدمون IAP أيضًا.

مرحبًا ، يبدو أنه لم يكن هناك أي نشاط بشأن هذه المشكلة مؤخرًا. هل تم إصلاح المشكلة أم أنها لا تزال تتطلب اهتمام المجتمع؟ قد يتم إغلاق هذه المشكلة في حالة عدم حدوث أي نشاط آخر. يمكنك أيضًا تصنيف هذه المشكلة على أنها "للمناقشة" أو "مشكلة أولى جيدة" وسأتركها مفتوحة. شكرا لمساهماتكم.

ببساطة:

  • إنشاء فرع جديد detached
  • تشغيل exp detach
  • تفعل كل نفس الأشياء التي تفعلها عادة
  • عد إلى master لإضافة كود js
  • عند الترميز في master بلف كود وحدة IAP الخاص بك بما يلي:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • بهذه الطريقة لن يتعطل الرمز الخاص بك عند استدعاء طرق IAP
  • عند نشر IAP أو اختباره ، استخدم الفرع المنفصل - أو فقط تخطي الفروع تمامًا وانتقل إلى المارقة> :)

الفكرة العامة هنا هي أن exp detach فقط مجلد /ios & /android حتى تتمكن من استخدام مشروعك كتطبيق RN.
ستظل تحصل على جميع وظائف تطبيق Expo العادي ، ما عليك سوى استخدام fastlane للنشر حتى لا تحتاج إلى استخدام الكثير من العناصر الأصلية.
أخيرًا ، الفروع مفيدة لتحديث إصدارات SDK. إذا كنت تواجه مشكلة في التحديث لسبب ما ، فيمكنك فصله مرة أخرى وإضافة هذا lib مرة أخرى.

نأسف لكونك كثيفًا جدًا ، ولكن هل هذا يعني أنك تضيف رمز IAP إلى كل فرع على حدة (إذا كان عليك "لفه" لفرع المعرض) ثم قم بإعادة الإخراج في فرع جديد في كل مرة تضيفها اكسبو للسيد ام تقوم بدمج الفروع في اي وقت ؟؟! وهل لا تزال هذه هي أفضل طريقة لإضافة عمليات الشراء داخل التطبيق إلى تطبيق إكسبو مُدار؟ لقد أنهيت للتو أول تطبيق كبير لي وأحتاج إلى إضافة هذه الوظيفة بطريقة ما ويبدو أن القيام بذلك في أحد الفروع خيارًا آمنًا جيدًا ربما - أريد فقط التأكد من فهمي لسير العمل! كما يجب أن أقول أنني أحب إكسبو! لقد كانت طريقة رائعة للانخراط في التفاعل مع السكان الأصليين وبدون ذلك لم أكن لأحصل على هذا الحد أبدًا ، شكرًا لك واستمر في العمل الجيد !!!

مرحبًا ، يبدو أنه لم يكن هناك أي نشاط بشأن هذه المشكلة مؤخرًا. هل تم إصلاح المشكلة أم أنها لا تزال تتطلب اهتمام المجتمع؟ قد يتم إغلاق هذه المشكلة في حالة عدم حدوث أي نشاط آخر. يمكنك أيضًا تصنيف هذه المشكلة على أنها "للمناقشة" أو "مشكلة أولى جيدة" وسأتركها مفتوحة. شكرا لمساهماتكم.

إغلاق هذه القضية بعد فترة طويلة من عدم النشاط. إذا كانت هذه المشكلة لا تزال موجودة في الإصدار الأخير ، فلا تتردد في إنشاء مشكلة جديدة بمعلومات محدثة.

ببساطة:

  • إنشاء فرع جديد detached
  • تشغيل exp detach
  • تفعل كل نفس الأشياء التي تفعلها عادة
  • عد إلى master لإضافة كود js
  • عند الترميز في master بلف كود وحدة IAP الخاص بك بما يلي:
import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}
  • بهذه الطريقة لن يتعطل الرمز الخاص بك عند استدعاء طرق IAP
  • عند نشر IAP أو اختباره ، استخدم الفرع المنفصل - أو فقط تخطي الفروع تمامًا وانتقل إلى المارقة> :)

الفكرة العامة هنا هي أن exp detach فقط مجلد /ios & /android حتى تتمكن من استخدام مشروعك كتطبيق RN.
ستظل تحصل على جميع وظائف تطبيق Expo العادي ، ما عليك سوى استخدام fastlane للنشر حتى لا تحتاج إلى استخدام الكثير من العناصر الأصلية.
أخيرًا ، الفروع مفيدة لتحديث إصدارات SDK. إذا كنت تواجه مشكلة في التحديث لسبب ما ، فيمكنك فصله مرة أخرى وإضافة هذا lib مرة أخرى.

نأسف لكونك كثيفًا جدًا ، ولكن هل هذا يعني أنك تضيف رمز IAP إلى كل فرع على حدة (إذا كان عليك "لفه" لفرع المعرض) ثم قم بإعادة الإخراج في فرع جديد في كل مرة تضيفها اكسبو للسيد ام تقوم بدمج الفروع في اي وقت ؟؟! وهل لا تزال هذه هي أفضل طريقة لإضافة عمليات الشراء داخل التطبيق إلى تطبيق إكسبو مُدار؟ لقد أنهيت للتو أول تطبيق كبير لي وأحتاج إلى إضافة هذه الوظيفة بطريقة ما ويبدو أن القيام بذلك في أحد الفروع خيارًا آمنًا جيدًا ربما - أريد فقط التأكد من فهمي لسير العمل! كما يجب أن أقول أنني أحب إكسبو! لقد كانت طريقة رائعة للانخراط في التفاعل مع السكان الأصليين وبدون ذلك لم أكن لأحصل على هذا الحد أبدًا ، شكرًا لك واستمر في العمل الجيد !!!

مرحبا! هل وجدت الجواب؟ كيف نفذته؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات