-
تعداد ارسال ها
4,152 -
تاریخ عضویت
-
آخرین بازدید
-
روز های برد
832
نوع محتوا
نمایه ها
فروشگاه
تالارهای گفتگو
بخش دریافت
تمامی مطالب نوشته شده توسط محمدرضا شاهپیری
-
دریافتMyketInapp کتابخانه درون پرداخت مایکت
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
عزیز روی ریلیز خطا هست یا نه؟ -
دریافتMyketInapp کتابخانه درون پرداخت مایکت
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
الان مشکل فقط روی Release (obfuscated) هست یا روی Release هم خطا میده؟ -
دریافتMyketInapp کتابخانه درون پرداخت مایکت
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
سلام و درود من رو اندروید 14 تست کردم موردی نبود. چک کنید حتما مایکت روی گوشیتون به روز باشه و کامپایل رو روی ریلیز بزارید نه دیباگ -
کتابخانه بسیار کاربردی PersianAlarmManager (**ویژه**)
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
سلام و درود. محصول توی لیست خریدتون هست دوست عزیز. از منوی بالای انجمن قسمت فروشگاه -> مدیریت خریدها دانلود کنید- 79 پاسخ
-
- PersianAlarmManager
- alarm
-
(و 2 مورد دیگر)
برچسب زده شده با :
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
- 93 پاسخ
-
- 1
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
کتابخانه PersianRecyclerView ***(نسخه جدید)***
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
پیاده سازی خاصی نداره. شما یه gridview دارین که مثلا 3 تا ستون داره میخواین شامل عکس و ویدئو. میخواین ویدئو دوبرابر عکس باشه. Private Sub EventName_getSpanSize(position as int) as int dim item as Item=items.get(position) if item.isVideo then return 2 else return 1 End Sub در واقع خروجی این تابع نسبت به کل هست.اگه 2 باشه یعنی دو سوم صفحه یا اگه 3 باشه یعنی کل صفحه. پیاده سازی کنید متوجه میشید- 612 پاسخ
-
- 1
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
خب اشتباه شما همین جاس.تابع init برای راه اندازی هست و متغیر دوم eventName هست نه payload تابع خرید به شکل زیر هست و اینجا متغیر دوم payload هست poolakey.purchaseProduct("product_id","payload")- 93 پاسخ
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
کتابخانه PersianRecyclerView ***(نسخه جدید)***
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
سلام و درود. باید از spanSize استفاده کنید متد زیر رو پیاده کنید مثلا اگه سه ردیف دارین حداکثر مقدار خروجی 3 هست که میشه کل صفحه. Private Sub EventName_getSpanSize(position as int) as int End Sub- 612 پاسخ
-
- 1
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
سلام و درود. من متوجه مشکل نشدم دوستان. من تو پنل بازار خودم نگاه میکنم مشکلی نمیبینم و مقدار payload عینا ذخیره میشه. مسیر رو چجوری دارین میرین؟- 93 پاسخ
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
سلام نیازی به فایلهای sdk نیست. نسخه آخر رو از سایت مرجع دانلود کنید نباید مشکلی باشه- 93 پاسخ
-
- 1
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
⚠️ جلوگیری از هک درون پرداخت کافه بازار ⚠️
محمدرضا شاهپیری پاسخی برای MrMedia ارسال کرد در موضوع : آموزش های تصویری
عالی و کامل. ممنون که به اشتراک گذاشتین- 3 پاسخ
-
- 1
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
ببینید عزیز من ایده کلی رو بهتون میدم شما دیگه خودتون تکمیلش کنید و بالا پایین کردناشو انجام بدین اول یه کلاس به اسم Payment ایجاد کنید Sub Class_Globals Private poolakey As Poolakey Private myketBill As MyketBilling Private eventName As String="billing" Private publicKey As String="......." Private market As String Private connected As Boolean=False Private module As Object End Sub Public Sub Initialize(mMarket As String,mModule As Object) market=mMarket module=mModule If market="bazaar" Then setupPoolakey Else setupMyket End If End Sub Private Sub setupPoolakey poolakey.init(publicKey,eventName) poolakey.connect End Sub Private Sub setupMyket myketBill.initialize(eventName,publicKey) End Sub Public Sub purchase(productId As String,payload As String) If connected==False Then ToastMessageShow("ارتباط با مارکت برقرار نشد",False) Return End If If market="bazaar" Then poolakey.purchaseProduct(productId,payload) Else myketBill.launchPurchaseFlow(productId,payload) End If End Sub Private Sub billing_connectionSucceed connected=True End Sub Private Sub billing_onIabSetupFinished(result As IabResult) connected = result.isSuccessful End Sub Private Sub billing_purchaseSucceed(purchaseInfo As PurchaseInfo) CallSubDelayed3(module,"handlePurchase",True,purchaseInfo.purchaseToken) End Sub Private Sub billing_purchaseFailed(error As String) CallSubDelayed3(module,"handlePurchase",False,Null) End Sub Private Sub billing_onIabPurchaseFinished(r As IabResult,p As Purchase) CallSubDelayed3(module,"handlePurchase",r.isSuccessful,p.Token) End Sub حالا کافیه توی اکتیویتی به شکل زیر استفاده کنید Dim paymant As Payment paymant.Initialize("bazaar",Me) paymant.purchase("productId","payload") Public Sub handlePurchase(success As Boolean,token As String) End Sub- 93 پاسخ
-
- 1
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
اصولا وقتی اینجور سیستمی دارین که چند نوع مختلف از یک عملیات یکسان رو توش انجام میدین (مثلا پرداخت درون برنامه ای دوتا مارکت متفاوت) باید یه کلاس واسط بنویسید و توش متدهای و ایونتهای پرداخت رو پیاده کنید و شما فقط با این کلاس باید حرف بزنید و مهم نباشه چه مارکتی استفاده میکنید خوب میشه حال دل مردم بالاخره عزیز. روزها و دوران سخت تر از این هم بوده و رفته. این روزام میگذره...- 93 پاسخ
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
سلام ودرود. سن یه عدده عزیز دلت باید جوون باشه اما در مورد مشکل، ببینید بیس کتابخونه های درون پرداخت یکیه و همشون از کلاسهای گوگل استفاده میکنن.حالا وقتی میاید و دوتاشونو استفاده میکنید کلاس تکراری به وجود میاد. اندریوداستودیو اینو هندل میکنه اما b4a متاسفانه توی کامپایل خیلی ضعیفه و هیچ آپشنی نمیده. تنها راهش اینه که یکی از اونها رو توی پروژه داشته باشید و با استفاده از آبسترکشن کلاسهای جداگونه بنویسید که غیر فعال کردن کتابخونه راحت باشه.- 93 پاسخ
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
ویژه: کتابخانه جامع PersianFastNetwork
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
سلام و درود. پیشنهاد میشه که به جای fastnet از رتروفیت استفاده کنید. اما در مورد سوال بله کافیه از فایل xml کتابخونه okhttputils وابستگی okhttp رو حذف کنید -
آموزش کار با Receiver در B4A
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : آموزش های متنی
سلام و درود. پست ویرایش شد و سورس هم جهت راحتی کار پیوست شد. -
تاپیک پشتیبانی کتابخانه PersianRetrofit
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
کتابخونه داره درست کار میکنه عزیز چون اون خطا از سرور داره میاد یعنی اینکه ارتباط با سرور برقرار شده.منم دوباره تست کردم و موردی نبود. حالا باید ببینید چرا این پیغام رو میده شاید مقادیر رو دارین اشتباه میفرستین. سورس رو بدون هیچ تغییری رو یه گوشی دیگه هم تست کنید و ایمیل معتبر وارد وارد کنید ببینید چی میشه. در صورت امکان فایل apk رو بزارید که من تست کنم- 20 پاسخ
-
- Retrofit
- Retrofit B4a
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
تاپیک پشتیبانی کتابخانه PersianRetrofit
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
اگه نیاز بود توضیح میدادیم. تو سورس توکن هست و کار میکنه و سورس رو ران کنید میتونید استفاده کنید. صرفا اگه بخواید با توکن شخصی کار کنید نیازه مراحل بالا رو طی کنید. آموزشهای لازم برای کتابخونه چه متنی و چه تصویری موجوده. شما اگه php داشتین که با کتاخونه های دیگه کار میکرده با این هم کار میکنه. لطفا ادامه سوالات در مورد مشکلات و مسائل مربوط به کتابخونه باشه نه آموزش php یا موارد دیگه. موفق باشید.- 20 پاسخ
-
- Retrofit
- Retrofit B4a
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
تاپیک پشتیبانی کتابخانه PersianRetrofit
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
چه خطایی میده متن خطا یا اسکرین بزارید- 20 پاسخ
-
- Retrofit
- Retrofit B4a
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
تاپیک پشتیبانی کتابخانه PersianRetrofit
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
وارد سایت زیر بشید و لاگین کنید. https://gorest.co.in/consumer/login مطابق صفحه زیر توکن رو بگیرید توکن رو طبق شکل زیر جایگزین کنید توی کلاس PrRetrofit و متد retrofit_intercept دقت کنید توکن باید همراه Bearer و یه فاصله باشه دقیقا مطابق سورس. دیگه نباید مشکلی باشه- 20 پاسخ
-
- Retrofit
- Retrofit B4a
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
تاپیک پشتیبانی کتابخانه PersianRetrofit
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
من فعلا وقت نمیکنم دوست عزیز تا آخر ماه شاید سرم خلوت شه. تو نت سرچ کنید آموزش زیاد هست.- 20 پاسخ
-
- Retrofit
- Retrofit B4a
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
تاپیک پشتیبانی کتابخانه PersianRetrofit
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
من php کار نکردم دوست عزیز فقط در حد مقدماتی. برای وب سرویس نوشتن پایتون گزینه فوقلاده ای هست و خیلی راحت و سریع میتونید بک اند اپ رو پیاده کنید. اگه خودتون بلد نیستید حتما به یه api نویس و وب کار بدین بنویسه- 20 پاسخ
-
- 1
-
- Retrofit
- Retrofit B4a
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
تاپیک پشتیبانی کتابخانه PersianRetrofit
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : مرتبط با فروشگاه
سلام و درود. api هایی که تو آموزش استفاده شده با پایتون-جنگو نوشته شده که تو پنل قرار گرفت. درمورد اتصال به اینترنت هم تو انجمن تاپیک زیاد هست در موردش جستجو کنید پیدا میکنید- 20 پاسخ
-
- 1
-
- Retrofit
- Retrofit B4a
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
دریافتPoolakey
محمدرضا شاهپیری پاسخی برای محمدرضا شاهپیری ارسال کرد در موضوع : کتابخانه ها (Libraries)
بله دوست عزیز. کرش میکنه. این کلاسها نیاز هست برای کتابخونه- 93 پاسخ
-
- 1
-
- poolakey
- درون پرداخت
-
(و 1 مورد دیگر)
برچسب زده شده با :
-
سلام و درود. امیدوارم حالتون خوب باشه از بین چهار کامپوننت اصلی اندروید رسیورها یکی از مهمترینهاش هست. از اونها برای اسال رویداد بین برنامه ها و یا بین خود کامپوننتها استفاده میشه. همینطور برای دریافت اعلانهای سیستمی مثل اس ام اس یا تماس ازشون استفاده میشه. این قابلیت جدیدا به صورت نیتیو به b4a اضافه شده هر چند کامل این کار رو نکرده. بریم که ببینیم به چه شکل باید استفاده کنیم. اول از منوی Project->Add New Module->Receiver Module یه رسیور مثلا به نام TestReceiver ایجاد میکنیم. Sub Process_Globals End Sub Private Sub Receiver_Receive (FirstTime As Boolean, StartingIntent As Intent) Log(StartingIntent.Action) End Sub به طور کلی به دو صورت میتونیم رسیورها رو توی اندروید ثبت کنیم. 1- از طریق منیفست یا استاتیک: یکی از روشهای ثبت رسیور از طریق منیفست هست. البته این روش برای اکثر اعلانها تو نسخه های جدید اندروید غیر فعال شده. مثلا میخوایم بوت شدن دستگاه رو بفهمیم. به منیفست کدهای زیر رو اضافه میکنیم. AddPermission(android.permission.RECEIVE_BOOT_COMPLETED) AddReceiverText(TestReceiver, <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter>) 2-از طریق کدنویسی یا داینامیک: اینجا رو دیگه ارل یادش رفته و براش راه حلی نزاشته. ولی ما که نمیزاریم چیزی لنگ بمونه این روش روش پیشنهادی و استاندارد گوگل هست. کدهای زیر رو به اکتیوتی یا سرویس اضافه کنید اضافه کنید. #If java import android.content.BroadcastReceiver; import android.content.Context; import android.content.IntentFilter; import android.os.Build; import java.lang.reflect.Constructor; public void registerReceiver(Object receiverClass, String[] actions) throws Exception{ IntentFilter intentFilter=new IntentFilter(); for (String action:actions) { intentFilter.addAction(action); } String className=receiverClass.toString().replace("class ",""); Class<?> clazz = Class.forName(className); Constructor<?> cons = clazz.getConstructor(); cons.setAccessible(true); final BroadcastReceiver receiver =(BroadcastReceiver) cons.newInstance(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { registerReceiver(receiver,intentFilter,Context.RECEIVER_EXPORTED); }else { registerReceiver(receiver,intentFilter); } } public void unregisterReceiver(Object receiverClass) throws Exception{ String className=receiverClass.toString().replace("class ",""); Class<?> clazz = Class.forName(className); Constructor<?> cons = clazz.getConstructor(); cons.setAccessible(true); BroadcastReceiver receiver =(BroadcastReceiver) cons.newInstance(); unregisterReceiver(receiver); } #End If و به صورت زیر رسیور رو ثبت کنید. مثلا میخوایم هر وقت دقیقه گوشی عوض شد متوجه بشیم. Dim jo As JavaObject jo.InitializeContext.RunMethod("registerReceiver",Array(TestReceiver,Array As String("android.intent.action.TIME_TICK"))) این مواردی که تا الان عرض شد برای اعلانهای سیستمی هست، اما یکی از مهمترین قابلیتهای رسیور اینه که ما میتونیم رسیور دلخواه خودمونو هم ثبت کنیم که خب خیلی کاربردی هست. مثلا میخوایم یه اعلان با اکشن com.action.TEST ثبت کنیم. به صورت زیر ثبتش میکنیم Dim jo As JavaObject jo.InitializeContext.RunMethod("registerReceiver",Array(TestReceiver,Array As String("com.action.TEST"))) و حالا برای صدا زدن اعلان به شکل زیر عمل میکنیم. اول کتابخونه phone رو تیک میزنیم. Dim phone As Phone Dim i As Intent i.Initialize("com.action.TEST","") i.PutExtra("key","value") phone.SendBroadcastIntent(i) حتما توجه داشته باشین که بعد از استفاده اونو unregister کنید.به شکل زیر Dim jo As JavaObject jo.InitializeContext.RunMethod("unregisterReceiver",Array(TestReceiver,Null)) سورس هم پیوست شد receiver.zip مانا باشید
- 4 پاسخ
-
- 5