رفتن به مطلب

محمدرضا شاهپیری

مدیر کل سایت
  • تعداد ارسال ها

    4,048
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    766

تمامی مطالب نوشته شده توسط محمدرضا شاهپیری

  1. یه متد جداگونه بنویسید واسه مصرف کردن خرید بعد توی onIabPurchaseFinished با دستور calsubdelayed اونو صدا بزنید ببینید اکی میشه یا نه‌ نتیجه رو اعلام کنید لطفا
  2. نسخه قبل مشکل داشت و اینکه روی نسخه ۱.۴ مایکت بود. نسخه فعلی مشکلات رفع شده و به نسخه ۱.۶ که نسخه آخر مایکت هست به روز شده. حتما به نسخه جدید آپدیت کنید
  3. سلام و درود. کتابخانه به روز شد نسخه جدید رو دریافت کنید
  4. سلام و درود. این موارد توی آموزشها هست Dim post As PostRequest post=prfn.BuildPostQuery("url","tag") post.addParametrs("ke1","value1") post.addParametrs("ke2","value2") post.addParametrs("ke3","value3")
  5. نسخه بیسیک رو حتما به روز کنید. همینطور sdk و فایلهای extra رو از سایت مرجع بگیرید و سمپلی که گذاشتم رو تست کنید
  6. سلام. نسخه 3 رو دانلود کنید و همچنین نسخه b4a و sdk هم نسخه آخر باشه فک کنم دیگه نیازی به تغییر sdk نیست
  7. از منوی بالای انجمن قسمت فروشگاه و مدیریت خرید دانلود کنید
  8. این کتابخونه به زودی با کتابخوته retrofit جایگزین میشه که به مراتب قدرتمندتره و امکاناتش بیشتره.
  9. سلام و درود. از wait For استفاده نکنید. متدهای success و error رو به صورت ایونت پیاده کنید. تایم اوت رو هم بالا بزارید یک دیقه معمولا میزارن
  10. به جای کد زیر toast.requestDrawPermission از روش زیر استفاده کنید. اول متد زیر رو به اکتیویتی اضافه کنید #if java import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.provider.Settings; public void requestDrawPermission() { Context context = BA.applicationContext; if (Build.VERSION.SDK_INT > 23 && !Settings.canDrawOverlays(context)) { Intent intent = new Intent( Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + context.getPackageName()) ); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } #end if حالا کتابخونه javaobject رو تیک بزنید و به شکل زیر متد رو صدا بزنید Dim jo As JavaObject jo.InitializeContext.RunMethod("requestDrawPermission",Null)
  11. شما متد Build رو صدا نزدین. قبل از نمایش باید این متد رو صدا بزنید که ویوها ساخته بشه. کدتون به شکل زیر باید باشه toast.Initialize("toast").Title("test").Icon(LoadBitmap(File.DirAssets,"caution1.png")).Build.Show قبل از همه چیز هم باید متد زیر رو صدا بزنید و دسترسی ترسیم رو بگیرید toast.requestDrawPermission
  12. آخرین نسخه موجود 5.11 هست از پنل دانلود و جایگزین کنید
  13. سلام و درود. از اونجایی که DsTabLayout از نسخه ساپورت استفاده میکنه و کتابخونه قدیمی و منسوخ شده هست و ریسایکلر ویو نسخه androidX هست احتمال اینکه تداخل داشته باشن خیلی زیاده. من که اصلا نتونستم از DsTabLayout استفاده کنم چون خطا میده و کامپایل نمیشه. اما اگه تداخل نداشته باشن به نظرم میتونید با هم استفاده کنید. به دوتا متد زیر توجه کنید Private Sub prrecycler_onScrollStateChanged(newState As Int) If newState==prRecycler.SCROLL_STATE_IDLE Then If prRecycler.AdapterPosition<>-1 Then dsTabLayout.SelectTab(prRecycler.AdapterPosition) End If End If End Sub Private Sub dstab_TabSelected(Index As Int, SelectedTab As String, Tag As Object) prRecycler.scrollToPosition(Index) End Sub درمورد سوال دوم هم که عرض شد. متد رو باید مستقیم از خود ریسایکلر صدا بزنید prRecycler.disableItemChangeAnimation
  14. سلام ودرود. از منوی بالای انجمن قسمت فروشگاه مدیریت خرید رو انتخاب کنید
  15. سلام به همه برنامه نویسای عزیز. بعد مدتها یه آموزش بزاریم کیف کنیم همونطور که مطلع هستید بازار خیلی وقته درون پرداخت رو با پولکی انجام میده و این کتابخونه مخصوص کاتلین هست و به راحتی نمیتونید اونو مستقیم توی جاوا استفاده کنید. برا همین یه کلاس واسط که به اصطلاح از دیزاین پترن پ * ر * و * ک *س * ی استفاده شده برای دوستان آماده کردیم که راحت بتونن اونو توی جاوا استفاده کنن. دقت کنید که حتما باید کاتلین توی پروژه ست شده باشه. کلاس کاتلین زیر رو به پروژه اضافه کنید و اسمشو PoolakeyWrapper بزارید. package com.example.myapplication import android.content.Context import androidx.activity.result.ActivityResultRegistry import ir.cafebazaar.poolakey.Connection import ir.cafebazaar.poolakey.Payment import ir.cafebazaar.poolakey.config.PaymentConfiguration import ir.cafebazaar.poolakey.config.SecurityCheck import ir.cafebazaar.poolakey.entity.PurchaseInfo import ir.cafebazaar.poolakey.request.PurchaseRequest /** * Created by Mohamadreza Shahpiri on 6/18/2023. * Answercenter.ir *************************************************** */ class PoolakeyWrapper( publicKey: String, context: Context, ) { private val securityCheck = SecurityCheck.Enable(rsaPublicKey = publicKey) private val paymentConfig = PaymentConfiguration(localSecurityCheck = securityCheck) private val payment = Payment(context = context.applicationContext, config = paymentConfig) private var connection:Connection?=null fun connect(connectionCallback: ConnectionCallback){ connection=payment.connect { connectionSucceed{ connectionCallback.connectionSucceed() } connectionFailed { connectionCallback.connectionFailed(it) } disconnected { connectionCallback.disconnected() } } } fun purchaseProduct(registry: ActivityResultRegistry,request: PurchaseRequest,purchaseCallback: PurchaseCallback){ payment.purchaseProduct(registry,request){ purchaseFlowBegan { purchaseCallback.purchaseFlowBegan() } failedToBeginFlow { purchaseCallback.failedToBeginFlow(it) } purchaseSucceed { purchaseCallback.purchaseSucceed(it) } purchaseCanceled { purchaseCallback.purchaseCanceled() } purchaseFailed { purchaseCallback.purchaseFailed(it) } } } fun subscribeProduct(registry: ActivityResultRegistry,request: PurchaseRequest,purchaseCallback: PurchaseCallback){ payment.subscribeProduct(registry,request){ purchaseFlowBegan { purchaseCallback.purchaseFlowBegan() } failedToBeginFlow { purchaseCallback.failedToBeginFlow(it) } purchaseSucceed { purchaseCallback.purchaseSucceed(it) } purchaseCanceled { purchaseCallback.purchaseCanceled() } purchaseFailed { purchaseCallback.purchaseFailed(it) } } } fun consumeProduct(purchaseToken: String,consumeCallback: ConsumeCallback){ payment.consumeProduct(purchaseToken){ consumeSucceed { consumeCallback.consumeSucceed() } consumeFailed { consumeCallback.consumeFailed(it) } } } fun getPurchasedProducts(queryCallback: QueryCallback){ payment.getPurchasedProducts { querySucceed { queryCallback.querySucceed(it) } queryFailed { queryCallback.queryFailed(it) } } } fun getSubscribedProducts(queryCallback: QueryCallback){ payment.getSubscribedProducts { querySucceed { queryCallback.querySucceed(it) } queryFailed { queryCallback.queryFailed(it) } } } fun disconnect(){ connection?.disconnect() } interface ConnectionCallback{ fun connectionSucceed() fun connectionFailed(throwable:Throwable) fun disconnected() } interface PurchaseCallback{ fun purchaseFlowBegan() fun failedToBeginFlow(throwable:Throwable) fun purchaseSucceed(info: PurchaseInfo) fun purchaseCanceled() fun purchaseFailed(throwable:Throwable) } interface ConsumeCallback{ fun consumeSucceed() fun consumeFailed(throwable:Throwable) } interface QueryCallback{ fun querySucceed(items:List<PurchaseInfo>) fun queryFailed(throwable:Throwable) } } حالا توی جاوا به شکل زیر ازش استفاده کنید. مثلا برای اینشیالایز. PoolakeyWrapper poolakeyWrapper=new PoolakeyWrapper("publicKey",this); poolakeyWrapper.connect(new PoolakeyWrapper.ConnectionCallback() { @Override public void connectionSucceed() { } @Override public void connectionFailed(@NonNull Throwable throwable) { } @Override public void disconnected() { } }); و برای خرید PurchaseRequest purchaseRequest=new PurchaseRequest( "productId","payload","dynamicPriceToken" ); poolakeyWrapper.purchaseProduct(getActivityResultRegistry(), purchaseRequest, new PoolakeyWrapper.PurchaseCallback() { @Override public void purchaseFlowBegan() { } @Override public void failedToBeginFlow(@NonNull Throwable throwable) { } @Override public void purchaseSucceed(@NonNull PurchaseInfo info) { } @Override public void purchaseCanceled() { } @Override public void purchaseFailed(@NonNull Throwable throwable) { } }); بقیه متدها رو هم به راحتی میتونید استفاده کنید. مانا باشید
  16. سلام ودرود. درمورد مشکل اول دستور disableItemChangeAnimation رو تست کنید و در مورد مسأله دوم دستور AdapterPosition
  17. سلام و درود. از قسمت مدیریت خرید میتونید دانلود کنید.
  18. سلام و درود. لینک درسته عزیز. پارس پسک پک به حجم فایل گیر میده که باید پلن پولی برای cdn فعال بشه. احتمالا cdn رو ببریم روی کلودفلر یا فایلهای دانلودی رو جابه جا کنیم
  19. سلام و درود. از منوی فروشگاه مدیریت خرید دانلود کنید.
  20. سلام و درود. آخرین نسخه بیسیک و sdk رو از سایت مرجع بگیرید و پروژه رو ران کنید
  21. سلام و درود. کتابخونه بروزرسانی شد. نسخه 2.1. از فلگ FLAG_IMMUTABLE باید استفاده کنید
  22. سلام و درود. از خطا مشخصه که کتابخونه ChromCustomTabs داره از پکیجهای قدیمی support استفاده میکنه. باید نسخه به روز کتابخونه رو بگیرید یا اینکه jetifireکنید
  23. سلام و درود. آموزش پیاده سازی توی ویدئو ها هست
  24. سلام و درود. نسخه آخر sdk رو از سایت مرجع دانلود و جایگزین کنید و api رو برای b4a روی ۳۱ بزارید
×
×
  • اضافه کردن...