React-native-iap: buySubscription يتجاهل ملاحظات المستخدم

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

نسخة من رد فعل - أصلية - IAP

2.3.0

المنصات التي واجهت الخطأ فيها (IOS أو Android أو كليهما؟)

ذكري المظهر

سلوك متوقع

اسمحوا sub = انتظار RNIApp.buySubscription ("بعض") ؛

يجب أن ينتظر المستخدم حتى يضغط شراء على طريقة الدفع في التطبيق

السلوك الفعلي

لا يمكنني التحقق مما إذا كان المستخدم قد وافق على الاشتراك ، لأنه عند القيام بما يلي:

اسمحوا sub = انتظار RNIApp.buySubscription ("بعض") ؛
إذا (فرعية) {
افعل بعض الاشياء ..
}

يتم تنفيذ كتلة if (الفرعية) فورًا بعد فتح النافذة المنبثقة ، ولكن لا يزال المستخدم لا يقبل الاشتراك

بيئة مُختبرة (محاكي؟ جهاز حقيقي؟)

جهاز حقيقي

أيه أفكار؟

هناك طرق أخرى مثل getAvailablePurchases والتي ترجع أيضًا إلى الوعد وتعمل بشكل جيد

تكمن المشكلة في أن buySubscription يجب أن يعيد استدعاء إدخال المستخدم وهو ليس كذلك

⌚️ regression 📱 iOS

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

نحن نعمل حاليا على هذا. أيضًا ، أي شخص يواجه هذا ، هل اتصلت بـ getSubscriptions قبل الاتصال الفعلي بـ buySubscription ؟

ال 32 كومينتر

أنا أستخدم RN 57 ، أيضًا ، تم الانتهاء من الاشتراك ، يمكنني التحقق من playstore أن الشراء على ما يرام ولكن وعد buySubscription يعود غير محدد

أي مساعدة؟

حسنًا ، لقد رجعت إلى الإصدار 2.2.2 وهو يعمل .. لذا أعتقد أنكم فقدتم شيئًا ما في إصداركم الجديد

@ marcosmartinez7 آسف للكسر هل يمكنك تجربة 2.3.1 ؟

مرحبا شكرا!

ليس لدي وقت الآن ولكني سأفعل

@ marcosmartinez7 شكرا يرجى العودة.

dooboolab Issue موجود على iOS أيضًا. تمت تجربة كل من 2.3.1 وكذلك 2.3.2 . كما ذكر من قبل @ marcosmartinez7 2.2.2 يعمل بشكل جيد

أعتقد أنه تم إصلاحه في 2.3.3 . يرجى إعادة الفتح عندما لا يزال هذا يحدث.

dooboolab أنا آسف ، لقد تم التثبيت وإعادة الربط 2.3.5 . لا يزال await RNIap.buySubscription(iapProductId) يعرض على الفور undefined على iOS

@ Gaia-Nutrition أعتقد أن مشكلتك مختلفة لأن كود ios لم يتغير. هل يمكنك محاولة إلغاء الارتباط والربط مرة أخرى؟

dooboolab حاولت الربط 2.2.2 يبدأ العمل مرة أخرى. لكنني سأتحقق مرة أخرى غدًا. ربما سأحاول تثبيت المكون الأصلي يدويًا

dooboolab حسنًا ، لقد قمت الآن بربط الإصدار الجديد 2.3.6 يدويًا. لا يزال الحصول على undefined . أود المساعدة في حل هذه المشكلة. اسمحوا لي أن أعرف ما يمكنني فعله للمساعدة!

يمكن لشخص ما تأكيد هذا؟ لا ينبغي أن يحدث هذا خاصة في iOS.

dooboolab يمكنني أن أؤكد أن الإصدار 2.3.6 من نظام التشغيل iOS لا ينفذ الوعود ولكن الإصدار 2.2.2 يفعل ذلك (باستخدام جهاز iPhone 5 ، React Native 0.56)

أواجه هذه المشكلة أيضًا في 2.3.7. عندما أحاول استخدام await يتم استدعاء السطر التالي على الفور بدلاً من انتظار الوعد ، وعندما أستخدم RNIap.buySubscription(subId).then(purchase => {}) فإنه يتعطل بسبب الخطأ لا يمكن قراءة الخاصية ثم غير محدد

نحن نعمل حاليا على هذا. أيضًا ، أي شخص يواجه هذا ، هل اتصلت بـ getSubscriptions قبل الاتصال الفعلي بـ buySubscription ؟

لقد اختبرت للتو الشراء في تطبيق RNExample. لقد اشتريت الاشتراك باستخدام طريقة buyProductWithoutFinishTransaction ().
أقترح إجراء اختبار مثل RNExample. وتحديث Xcode ، وبناء الإعداد على "تراث" .. أعتقد أن عملية البناء في Xcode غيرت هذا التحديث.
واستخدم جهاز اختبار الرمل المصنوع حديثًا.

تضمين التغريدة الجمع بين buyProductWithoutFinishTransaction() و finishTransaction() يعمل على 2.3.7 بينما لا يزال فشل buySubscription() مباشرة!

@ Gaia- التغذية موافق. ثم استخدم buyProductWithoutFinishTransaction و finishTransaction بدلاً من buySubscription . إجراء الشراء هو نفسه تمامًا.

@ Gaia-Nutrition هل يمكنك تجربة 2.3.8 ؟ أيضًا ، هل اتصلت بـ getSubscriptions قبل buySubscription ؟

dooboolab 2.3.8 لا يزال يفشل باستخدام buySubscription ومرة أخرى: نعم ، لقد اتصلت بـ getSubscriptions قبل. لا أعتقد أن buyProductWithoutFinishTransaction() سيعمل بطريقة أخرى.

لقد اختبرت buySubscription في جهاز iOS في وضع الحماية.
تمكنت من النجاح ، لكنها تظهر بعض رسائل الخطأ.
والاشتراك التلقائي القابل للتجديد لا يصدر إيصالًا.
أقترح استخدام buyProductWithoutFinishTransaction و finishTransaction بدلاً من buySubscription.
ليس لدي حاليًا جهاز للاختبار ، وسأتتبع هذه المشكلة لاحقًا.

يبدو أن هذه مشكلة فقط في iOS حاليًا. هل انا على حق؟

dooboolab لا ، يحدث أيضًا على Android. ترجع الدالة undefined حتى قبل استدعاء السطر الأول في buyItemByType.

dooboolab سبب المشكلة في index.js: 105. يجب عليك تغيير الخطوط إلى شيء مثل

export const buySubscription = (sku, oldSku, prorationMode) => Platform.select({ ios: () => RNIapIos.buyProduct(sku), android: () => RNIapModule.buyItemByType(ANDROID_ITEM_TYPE_SUBSCRIPTION, sku, oldSku, -1), })();
(أعلم أن هذا يتجاهل وضع prorationMode)

لكن بعد الاشتراك بنجاح هناك مشكلة:

E/UncaughtException: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference at com.dooboolab.RNIap.RNIapModule$11.onPurchasesUpdated(RNIapModule.java:427) at com.android.billingclient.api.BillingClientImpl$1.onReceive(BillingClientImpl.java:136) at com.android.billingclient.api.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:303) at com.android.billingclient.api.LocalBroadcastManager.access$000(LocalBroadcastManager.java:44) at com.android.billingclient.api.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:114) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6938) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

mfentross ما هو إصدار react-native-iap الذي تستخدمه؟ يوجد سطر فارغ في RNIapModule.java:427 . يرجى المحاولة مرة أخرى لآخر واحد.

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

"
تصدير const buySubscription = (sku، oldSku، prorationMode) =>
Platform.select ({
ios: () => RNIapIos.buyProduct (SKU) ،
android: () => {
if (! prorationMode) prorationMode = -1 ؛
إرجاع RNIapModule.buyItemByType (ANDROID_ITEM_TYPE_SUBSCRIPTION، sku، oldSku، prorationMode) ؛
} ،
}) () ؛

"

كانت هناك بعض الأقواس غير الضرورية.

تضمين التغريدة فاتني بيان return . لقد نشرت للتو في 2.3.11 . حتى الآن الروبوت يعمل؟

dooboolab شكرًا ، إنه يعمل الآن 👍

تضمين التغريدة لذلك لدينا مشكلة iOS متبقية فقط.

JJMoon يقول إنه إذا كانت طريقة الالتفاف بـ async و await ، فإنها تعمل. ومع ذلك ، لست متأكدًا تمامًا من إمكانية تحقيق ذلك. التفاف بـ async و await فائض في القيمة المرجعة أليس كذلك؟

لقد نشرت في 2.3.13 . اتمنى لكم جميعا تجربة هذا

يرجى إعادة الفتح عندما لا يزال هذا يحدث. شكرا لك على كل المساعدة.

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

القضايا ذات الصلة

safciplak picture safciplak  ·  3تعليقات

sanilcgs picture sanilcgs  ·  3تعليقات

schumannd picture schumannd  ·  3تعليقات

jvandenaardweg picture jvandenaardweg  ·  4تعليقات

MacMillan13 picture MacMillan13  ·  3تعليقات