محصولات درونبرنامهای خود را در مایکت مشخص کنید
از پنل توسعهدهندگان مایکت شما میتوانید محصولات درونبرنامهای خود را تعریف نمایید و پس از آن اقدام به تعریف جزئیات مربوط به این محصولات نمایید.
دریافت جزئیات محصولات موجود
شما میتوانید به مایکت کوئری بزنید تا جزئیات محصولاتی که مربوط به برنامه شما هستند را دریافت کنید (مانند قیمت، عنوان، توضیح و نوع محصول). این ویژگی میتواند زمانی به کار آید که، میخواهید لیستی از محصولات را که امکان خریدشان فراهم شده اما کاربر هنوز نخریده است نشان دهید.توجه: زمانی که کوئری میزنید، شما باید شناسه محصولات را صریحا مشخص کنید. شما میتوانید شناسه هر محصول را از پنل توسعهدهندگان مایکت دریافت کنید.برای دریافت جزئیات محصول از نمونه IabHelper که دارید متد queryInventoryAsync (Boolean, List, QueryInventoryFinishedListener) را فراخوانی کنید.
- اولین آرگومان ورودی نشان میدهد که آیا جزئیات محصول باید دریافت شود یا خیر (باید مقدارش true باشد)
- آرگومان List شامل یک یا چند شناسه محصول (SKU نیز نام دارد) است که میخواهید کوئری بزنید (جزئیات آنها را میخواهید).
- در نهایت آرگومان QueryInventoryFinishedListener یک شنونده را مشخص میکند که بعد از به پایان رسیدن کار فراخوانی میشود و پاسخ کوئری را بررسی میکند.
اگر شما از کلاسهای فراهم شده در برنامه مثال استفاده کنید، کلاسها مدیریت thread پسزمینه برای درخواستهای خرید درونبرنامهای را انجام میدهند، بنابراین شما میتوانید به راحتی از thread اصلی برنامه خود کوئری بزنید.نمونه کد زیر نشان میدهد که چگونه میتوانید جزئیات مربوط به دو محصول با شناسههای SKU_APPLE و SKU_BANANA را دریافت کنید. البته با این فرض که این شناسهها را در پنل توسعهدهندگان مایکت تعریف کردهاید.
List additionalSkuList = new List(); additionalSkuList.add(SKU_APPLE); additionalSkuList.add(SKU_BANANA); mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
اگر کوئری موفقیت آمیز باشد، نتایج آن در یک شی Inventory ذخیره میشود که به شنونده فرستاده میشود. کد زیر نشان میدهد که شما چگونه میتوانید قیمت محصول را از نتایج جستجو بازیابی کنید.
IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() { public void onQueryInventoryFinished(IabResult result, Inventory inventory) { if (result.isFailure()) { // handle error return; } String applePrice = inventory.getSkuDetails(SKU_APPLE).getPrice(); String bananaPrice =inventory.getSkuDetails(SKU_BANANA).getPrice(); // update the UI } }